Как я могу отложить определенную часть своей функции, завершить свою функцию, а затем вернуться к той части, которую я задержал?

У меня есть функция, в которой я хочу отложить определенный вызов в середине, но я не хочу останавливать всю функцию. Даже после последней строки я хочу, чтобы часть, которую я отложил, запустилась после назначенного времени. Вот пример того, что я имею в виду:

 function delayInMiddle()
{
function call 1
if(some condition met in 30 seconds)
{function call 2}
function call 3
}

Я хочу вызвать функцию 1, проверить функцию 2, продолжить вызов функции 3, затем вернуться и выполнить вызов функции 2 через 30 секунд.
Это возможно в php?

0

Решение

Как насчет этого как возможного решения.

Вместо вызова function2 в этом сценарии запишите соответствующие данные в таблицу, которая работает как очередь + время, до которого она не должна обрабатывать этот элемент очереди, что создает вашу x-секундную задержку.

Затем сделайте функцию 2 работой cron, которая выполняется каждые 30 секунд. Он смотрит на очередь, чтобы увидеть, что делать, если что-то есть.

foreach ( row in queue ) {
send twitter;
delete row from table;
}
exit;
0

Другие решения

Ты можешь использовать sleep() за задержку. http://php.net/manual/en/function.sleep.php

-1

По вопросам рекламы [email protected]