Форум программистов, компьютерный форум, киберфорум
Наши страницы
PHP: Laravel
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
mstdmstd
0 / 0 / 1
Регистрация: 21.02.2010
Сообщений: 195
1

Шедулер несколькими задачами

10.10.2018, 16:41. Просмотров 1511. Ответов 5
Метки нет (Все метки)

Всем привет
Не подскажите читаю о шедулере
https://laravel.com/docs/5.7/scheduling#defining-schedules
и тут написана команда на сервере
Bash
1
* * * * * cd /path-to-your-project && php artisan schedule:run >> /dev/null 2>&1
которая должна запускаться каждую минуту
И если частота запуска определена как
PHP
1
2
3
      $schedule->call(function () {
            DB::table('recent_users')->delete();
        })->daily();
1) То получается, что лараверовский шедулер должен запускаться КАЖДУЮ минуту(обязательное условие?)
и по определению выше уже он и будет с нужным интервалом запускать необходимые команды(так как команд может быть несколько и с разными интервалами).


2) Не нашел, как лучше сделать, если у меня есть 3 задачи, которые нужно запускать с интервалом в 1 час, но развести запуск через 20 минут
для уменьшения нагрузки ?

3) У меня локально kubuntu 18 и удаленно Ubuntu 18 (Digital Ocean). как в них запустить крон? Я помню такую возможность в cPanel - но у меня
cPanel нет ...

Спасибо!
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2018, 16:41
Ответы с готовыми решениями:

Альтернативный шедулер
Чем можно пускать агента по раз в квартал, раз в год, по особому расписанию?

Есть ли в Делфи визуальный шедулер(планировщик)?
Добрый день. Есть необходимость разрешать выполнение программы по условию : День...

Запуск Джоба от другого имени через шедулер
Всем привет! Есть отлично работающий скрипт в котором происходит выполнение Job'а от другого...

Как командами bat-файла прописать программу в шедулер Windows ?
Назначить ей время запуска и всё такое...

Помогите с задачами!
1.06 Найти площадь равнобедренной трапеции с основаниями a и b и углом при большом осно-вании а....

5
tarasalk
1221 / 730 / 292
Регистрация: 13.06.2013
Сообщений: 2,574
10.10.2018, 17:23 2
Цитата Сообщение от mstdmstd Посмотреть сообщение
То получается, что лараверовский шедулер должен запускаться КАЖДУЮ минуту
Поначалу тоже пугало, но на самом деле система и так в бесконечном цикле постоянно что-то делает, так что особо ничего не меняется.

Цитата Сообщение от mstdmstd Посмотреть сообщение
Не нашел, как лучше сделать, если у меня есть 3 задачи, которые нужно запускать с интервалом в 1 час, но развести запуск через 20 минут
для уменьшения нагрузки ?
$schedule1->hourly();
$schedule2->hourlyAt(20);
$schedule3->hourlyAt(40);
А вообще лучше очереди использовать.
1
mstdmstd
0 / 0 / 1
Регистрация: 21.02.2010
Сообщений: 195
10.10.2018, 17:32  [ТС] 3
Цитата Сообщение от tarasalk Посмотреть сообщение
система и так в бесконечном цикле постоянно что-то делает
Это в смысле что к вашей системе в рабочем состоянии постоянно идут запросы?
У меня пока что в стадии разработке и только я с ней работаю ...

Цитата Сообщение от tarasalk Посмотреть сообщение
А вообще лучше очереди использовать.
Это https://laravel.com/docs/5.7/queues ?
А почему лучше ?
0
tarasalk
1221 / 730 / 292
Регистрация: 13.06.2013
Сообщений: 2,574
10.10.2018, 17:49 4
Цитата Сообщение от mstdmstd Посмотреть сообщение
Это в смысле что к вашей системе в рабочем состоянии постоянно идут запросы?
Нет. Комп включили и он работает. Каждый тик проверяет текущее состояние, что изменилось и как это обработать.
Цитата Сообщение от mstdmstd Посмотреть сообщение
А почему лучше ?
Потому что выполняет задачи по порядку. Первую закончил, перешел к следующей. Нет необходимости вручную распределять нагрузку.
0
mstdmstd
0 / 0 / 1
Регистрация: 21.02.2010
Сообщений: 195
11.10.2018, 15:23  [ТС] 5
Вернулся к вопросу и в файл /etc/crontab
добавил одну строку

Bash
1
2
3
4
5
6
7
8
9
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
 
# m h dom mon dow user  command
17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )
2  *    * * *   root    /_wwwroot/lar/Votes/artisan schedule:run >> /dev/null 2>&1
И выполнил :
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
systemctl restart cron
root@serge:/mnt/_work_sdb8/wwwroot/lar/Votes# systemctl status cron
в—Џ cron.service - Regular background program processing daemon
   Loaded: loaded (/lib/systemd/system/cron.service; enabled; vendor preset: enabled)
   Active: active (running) since Thu 2018-10-11 14:57:15 EEST; 11s ago
     Docs: man:cron(8)
 Main PID: 11625 (cron)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/cron.service
           в””в”Ђ11625 /usr/sbin/cron -f
 
11 14:57:15 serge systemd[1]: Started Regular background program processing daemon.
11 14:57:15 serge cron[11625]: (CRON) INFO (pidfile fd = 3)
11 14:57:15 serge cron[11625]: (CRON) INFO (Skipping @reboot jobs -- not system startup)
Я полагал, что каждые 2 минуты будет выполняться мой
шедулер(там удаляются строки из одной из таблиц и имитируется отправка емейлов сбросом файлов с содержимым на диск) - но похоже ничего не выполняется.
Там есть какие-то логи ?
Я искал в /var/log файлы по подстроке “*cron*” но ничего не нашел...
0
Para bellum
Эксперт PHP
4187 / 3114 / 1010
Регистрация: 06.01.2011
Сообщений: 9,091
14.10.2018, 06:30 6
Лучший ответ Сообщение было отмечено mstdmstd как решение

Решение

Цитата Сообщение от mstdmstd Посмотреть сообщение
полагал, что каждые 2 минуты будет выполняться мой
шедулер
Неправильно полагали. Он будет выполняться только во вторую минуту часа. Т.е. в 00:02, 01:02 и т.д.
Чтобы каждую вторую выполнялся, напишите так:
Код
*/2  *    * * *   root    /_wwwroot/lar/Votes/artisan schedule:run >> /dev/null 2>&1
0
14.10.2018, 06:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.10.2018, 06:30

Сайты с задачами
Вот видел недавно сайт, на котором висит задание, ограничение по времени, занятому месту и т.п. На...

Помогите с задачами
Здравствуйте, помогите пожалуйста написать программы. 1)составить программу обмена значениями двух...

Выручите с задачами по С++


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru