Выполнять запрос каждые 3 часа - PullRequest
0 голосов
/ 05 января 2019

У меня есть API, который мне нужно использовать для отправки информации, но этот API требует, чтобы я получал токен доступа каждые три часа. Мой вопрос не о самом API, а о том, как я должен это делать. Я знаю, что для этого нужно использовать задания cron. Но это единственный способ сделать это, или я могу сделать сам php scheduale, чтобы сделать это? Если нет, то можно ли сделать задачу cron «сделать запрос», а не «запустить скрипт»? Я имел в виду, что я создал бы php-файл, который заставлял бы мою систему получать новый токен (все данные и функции запроса токена будут храниться внутри моей системы, а не файл cronjob), а не параметр файла вне мой проект и внесение изменений в него извне. Это хорошая идея, или я должен просто заставить файл cronjob получить токен для меня? Я надеюсь, что сделал свою точку зрения правильно.

Ответы [ 3 ]

0 голосов
/ 08 января 2019

Если скрипт, который вы хотите запустить, основан на сети, вы можете использовать стороннюю службу, такую ​​как crono , для программной настройки ваших заданий.

0 голосов
/ 08 января 2019

Вы можете записывать токен, созданный в файле, каждый раз, когда запускается задание cron, вы можете проверить время его существования, и ваш код может решить запросить новый токен, если срок его действия почти истекает, что составляет 3 часа. Но было бы идеально, если вы сделаете это за 15 минут до истечения срока действия, потому что есть разница, когда вы получаете токен и время, когда токен был окончательно сгенерирован сторонней системой, хотя разница, возможно, не настолько велика, но многое может происходит во время передачи, поэтому время генерации и ETA не всегда одинаковы. :)

0 голосов
/ 05 января 2019

Прежде всего, cronjob ничего не делает сам, как вы сказали "сделать запрос". это точно сделать "запуск сценария". Теперь для вас есть способы сделать это, но лучший способ для такой работы - cron. потому что он работает под ядром и полностью надежен и стабилен. во-вторых, что вы подразумеваете под "хранится в моей системе, а не в файле cronjob"? если вы имеете в виду, что вы храните свой токен доступа в своем коде, и теперь вы должны сохранить его в файле, потому что cron запускает скрипт, и этот скрипт сохраняет токен где-то, и это небезопасно, поэтому просто сделайте это: создайте скрипт, который записывает файл только 0 или 1. каждые 3 часа этот скрипт запускается cron и меняйте 0 на 1. вы код всегда проверяете этот файл, если значение равно 1, то токен истек, и вы генерируете новый токен перед созданием вызов нового API и в конце вы снова меняете этот файл на 0. это просто простой способ. но имейте в виду, что это не лучшая практика, и если вы можете ПРОСТО РЕАЛИЗОВАТЬ ОБРАТНЫЙ ЖЕЛЕЗНЫЙ МЕТОД с другой стороны.

...