Beanstalkd «отложенная работа» не выполняет

У меня возникли некоторые проблемы с получением задания для запуска в моей настройке Laravel 4. У меня это работает на усадьбе, но не работает на производстве. Я использую Beanstalkd (с pheanstalk) и Supervisor, следуя этот урок.

Короче говоря, я хочу удалить изображение, которое находится на моем сервере, через 20 секунд после вызова задания.

Queue::later(20, 'App\Queues\FileHandler@delete', ['file' => $file]);

$file это путь к моему файлу.

Мой метод удаления:

public function delete($job, $data)
{
var_dump($data);
if (File::exists($data['file']))
File::delete($data['file']);

$job->delete();
}

Я также установил Beanstalkd Console.

Правильно, поэтому, когда я нажимаю кнопку, она вызывает очередь. Я вижу на консоли консоль, что теперь она имеет правильную $data, с правильным путем к файлу.

На консоли time-left отсчитывает от 20 … и когда он достигает 0, он сбрасывается до очень большого числа (18446744073666). В логах нет ошибок / вывода.

Как только я «пинаю» задание с консоли, оно выполняется, и мой файл удаляется, поэтому я знаю, что код исправен.

Кто-нибудь получил какие-либо предложения, это действительно раздражает меня 🙁

2

Решение

Версия 1.4.6 имела проблему с отложенными заданиями. Обновите до 1.5 или 1.6, если вы работаете на 1.4.6

4

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

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