Форум русской поддержки Joomla!® CMS
11.12.2016, 06:13:04 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1]   Вниз
  Добавить закладку  |  Печать  
Автор

Автоматический запуск без Cron

 (Прочитано 750 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« : 09.03.2016, 22:45:00 »

Всем привет, интересует вопрос реализации автоматического запуска скрипта по расписанию минуя Cron. Как это лучше сделать?

Дело в том, что не каждый пользователь вообще знает, что такое Cron, да и из тех, кто знает, не каждый может его настроить. Поскольку компонент планируется распространять в основном среди новичков (да и в целях универсальности), решил немного расширить его функционал и реализовать возможность запуска скриптов по расписанию без использования Cron.

Пока я вижу решение этого вопроса так: при первом запуске в память сервера грузится демон с таймером перезапуска (для обхода ограничения времени выполнения скрипта демон через, например, 20 секунд создает свою копию и завершает работу), который запускает на выполнение небольшой скрипт. Этот скрипт проверяет таймер и условия запуска и, если время подошло, запускает требуемый код, если нет - завершает работу. Нагрузка на ЦП сервера минимальна, демон маленький и память напрягать не будет.

Быть может кто то предложит более оригинальное решение?
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7786



« Ответ #1 : 09.03.2016, 23:04:04 »

Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #2 : 09.03.2016, 23:16:35 »

Написать плагин, в нем рандомно (раз в 10\100\1000 раз) проверять последний запуск.
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #3 : 09.03.2016, 23:27:09 »

@dmitry_stas, видел эту картинку. Поясню. В качестве примера можно привести много задач, например, парсеры, сканеры, проверка собственных файлов по хешам, слежение за чем то и т.д. Ну... не знаю, наверное я действительно хочу из буханки троллейбус сделать, но все же? ))

Либо сделать удобство пользователю, избавить его от "рутины", либо писать для него инструкцию настройки crontab...

Написать плагин, в нем рандомно (раз в 10\100\1000 раз) проверять последний запуск.
Не вариант, если посещалка маленькая, а мониторить нужно постоянно.
Записан
Ilhom666
Живу я здесь
******

Репутация: +157/-0
Offline Offline

Сообщений: 1344



« Ответ #4 : 10.03.2016, 01:36:14 »

есть всякие сторонние сервисы, типа My Web Cron
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #5 : 10.03.2016, 01:38:44 »

есть всякие сторонние сервисы, типа My Web Cron
Знаю, но вот как раз хотелось бы обойтись вообще безо всего, чисто средствами самого компонента без оглядки на количество посетителей. Даже если на сайт никто не зашел, он все равно должен сработать. Получается, демон - единственный вариант?
Записан
voland
Профи
********

Репутация: +488/-86
Offline Offline

Пол: Мужской
Сообщений: 8736


любит наш народ всякое гавно...


« Ответ #6 : 10.03.2016, 01:50:51 »

Забыть про демоны как страшный сон.
Поднять у себя сервис и опрашивать.
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7786



« Ответ #7 : 10.03.2016, 01:58:50 »

получается что то типа "мясо надо порезать на шашлык, но нож я им не дам, опасно, порежутся еще, поэтому лучше я им 37 пластиковых линеек дам, пусть пока начинают резать, а я пока подумаю, как улучшить линейку так, чтобы она не ломалась, резала мясо, а руки нет"
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #8 : 10.03.2016, 02:34:11 »

Напишите скрипт который будет добавлять/убирать задание в cron. Да и чем GUI не устраивает? Вот еще один например интерфейс для удобства: https://github.com/alseambusher/crontab-ui. Я согласен с dmitry_stas, писать какую программу, демон - это перебор. Есть же нативные инструменты, да и времени не жалко что-ли?
« Последнее редактирование: 10.03.2016, 02:58:48 от zomby6888 » Записан
Wertos
Завсегдатай
*****

Репутация: +21/-0
Offline Offline

Пол: Мужской
Сообщений: 543


« Ответ #9 : 10.03.2016, 04:13:36 »

http://www.extly.com/utilities/jprc-cronjobs.html
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #10 : 10.03.2016, 12:34:37 »

Цитировать
It is launched at the preset time only if your site gets visits in place. Each time a user or spider accesses your public site you will have the cron running.

Спасибо, но не то. Он срабатывает от захода посетителя. А если я, к примеру, парсю результаты матчей в букмекерской конторе, где нужно каждую минуту забирать данные, а посетители такой трафик не дают, максимум 10 заходов в час. В итоге я теряю данные. Выше voland уже предлагал такое решение в виде плагина.

Предложение от zomby6888 куда интереснее, раньше такого не делал. Поищу информацию для просвещения.

Сейчас сижу и думаю, а правда, зачем я изобретаю троллейбус?.. Да, хочется дать нашим ленивым и не слишком образованным пользователям хороший инструмент со всеми возможностями "из коробки" с минимумом настроек, но с другой стороны если у человека хватило ума скачать и установить компонент, он что, крон не настроит? Вообщем, решил прислушаться к вашему совету и оставить эту затею с демоном.

Но все же, если есть желание, поясните, пожалуйста, почему не стоит его использовать? Он маленький, память не ест, ресурсы не занимает, чем мешает то? Сидит себе смирно в памяти, подыхая каждые 20 секунд, предварительно создав свою копию через сокет.
Записан
zomby6888
Живу я здесь
******

Репутация: +168/-3
Offline Offline

Пол: Мужской
Сообщений: 1538


« Ответ #11 : 10.03.2016, 14:50:44 »

Хз, я не спец по линуксу, не писал никогда никаких демонов.
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7786



« Ответ #12 : 10.03.2016, 18:31:47 »

Но все же, если есть желание, поясните, пожалуйста, почему не стоит его использовать?
система иногда апач перезапускает, не так ли? Azn и сервер тоже бывает перегружается...
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #13 : 10.03.2016, 20:15:50 »

система иногда апач перезапускает, не так ли? Azn и сервер тоже бывает перегружается...



И как сам не допер....  Grin
Записан
dmitry_stas
Профи
********

Репутация: +798/-4
Offline Offline

Сообщений: 7786



« Ответ #14 : 10.03.2016, 20:36:15 »

та вопрос даже не в этом. для этого тоже наверняка можно найти решение, и мужественно преодолеть эту проблему. но зачем? зачем вообще ломать над этим голову, если уже придуман крон, и придуман именно для того, что мы пытаемся сейчас выдумать и по сути этот самый крон сэмулировать Azn
в общем, все как на картинке по троллейбус Azn можно дойти пешком из Петербурга в Москву? можно. но зачем? Azn быстрее и дешевле автобусом. если это самоцель - ну это один вопрос. ради саморазвития там, или еще что-нибудь. но у вас же такой задачи не стоит.
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2289



« Ответ #15 : 10.03.2016, 22:12:13 »

но у вас же такой задачи не стоит.

Вы абсолютно правы. Хотел для удобства... Ведь какой народ сейчас, порой элементарных вещей сделать не могут. Вообщем, вопрос решен. В пользу Крона. Спасибо всем за занимательную и веселую дискуссию!
Записан
Страниц: [1]   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet