Настройка задания Cron для выполнения PHP

88
6

У меня есть php-страница с текстовым полем, которое принимает номер идентификатора игрока, делает запрос на другую страницу на основе этого идентификатора, используя запрос GET, а затем использует ответ.

Эта часть работает отлично. Однако теперь я хотел бы автоматизировать процесс, используя работу Cron.

Я никогда раньше не использовал работу Cron, поэтому я немного запутался в их исполнении.

После этой документации: http://www.cyberciti.biz/faq/how-do-i-add-jobs-to-cron-under-linux-or-unix-oses/][1

Я пытаюсь настроить его. Во-первых, после открытия crontab через crontab -e если я хочу каждую минуту выполнять свою страницу php, я бы написал:

1 0 0 0 1/updateplayer.php

Мой первый вопрос заключается в том, должен ли я писать задание для каждого дня недели, если я хочу, чтобы он запускался каждый день каждую минуту или есть ли в течение всего дня опция, не указанная в этой документации?

Во-вторых, для того, чтобы запустить "важную" часть этой страницы php, мне нужно, чтобы мой $_GET['playerid'] установлен на определенный идентификатор игрока. Я надеюсь, что смогу выполнить это через часть arg1 arg2 (после части phpexecute.php моего предложенного задания cron). Однако это не работает так хорошо, как ожидалось. Может ли кто-нибудь помочь мне запустить эту работу?

* Обратите внимание, что я понимаю, что работа будет работать только для одного игрока, который указан в задании.

спросил(а) 2021-01-25T17:10:00+03:00 4 месяца, 3 недели назад
1
Решение
63

Вам не нужно писать задание cron для каждого дня недели. Вместо 0 или 1 в вашем примере работы cron вы можете использовать звездочку (*), которая будет означать все. Значит, звездочка во втором столбце (час) будет означать, что он запускается каждый час. Звездочка в первом столбце (минуту) запускала ее каждую минуту.

Задача cron будет выглядеть так:

* * * * * php -f /[path to dir]/updateplayer.php [playerid]

Во второй части вы можете передать аргументы в PHP-скрипт, хотя вам нужно получить их через переменную $ argv вместо $ _GET. В примере, который я вам предоставил, вы получите идентификатор игрока через $argv[1]

ответил(а) 2021-01-25T17:10:00+03:00 4 месяца, 3 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема