php-resque: как убить конкретную работу?

Я использую PHP-спасательное Библиотека и задания могут быть созданы и отслежены с помощью следующего кода.

$token = Resque::enqueue('queue', 'Job', NULL, true);

$statusTracker = new Resque_Job_Status($token);
$status = $statusTracker->get();

Но с учетом токена, возвращенного enqueue метод, как можно остановить работу?

я нашел этот на странице проекта, но он не использует маркер задания, чтобы остановить работу, вместо этого он использует идентификатор работника.

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

0

Решение

Насколько я знаю, Resqueue не поддерживает «прерывание» или «остановку» заданий. Но если вам удастся каким-то образом сохранить действие отмены в какой-либо БД, все будет в порядке. Вы можете сделать дополнительную проверку в executeAction (). Что-то вроде;

class My_Job {
public function perform() {
$wasCanceled = true;
if( $wasCanceled ) {
throw new Exception("Job was cancelled");
}

// Perform job stuff.
}
}

Последний, но тем не менее важный; это может не всегда работать, когда задания уже выполнены до отмены.

0

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

Других решений пока нет …

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