У меня есть функция, в которой я хочу отложить определенный вызов в середине, но я не хочу останавливать всю функцию. Даже после последней строки я хочу, чтобы часть, которую я отложил, запустилась после назначенного времени. Вот пример того, что я имею в виду:
function delayInMiddle()
{
function call 1
if(some condition met in 30 seconds)
{function call 2}
function call 3
}
Я хочу вызвать функцию 1, проверить функцию 2, продолжить вызов функции 3, затем вернуться и выполнить вызов функции 2 через 30 секунд.
Это возможно в php?
Как насчет этого как возможного решения.
Вместо вызова function2 в этом сценарии запишите соответствующие данные в таблицу, которая работает как очередь + время, до которого она не должна обрабатывать этот элемент очереди, что создает вашу x-секундную задержку.
Затем сделайте функцию 2 работой cron, которая выполняется каждые 30 секунд. Он смотрит на очередь, чтобы увидеть, что делать, если что-то есть.
foreach ( row in queue ) {
send twitter;
delete row from table;
}
exit;
Ты можешь использовать sleep()
за задержку. http://php.net/manual/en/function.sleep.php