У меня возникли некоторые проблемы с получением задания для запуска в моей настройке 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). В логах нет ошибок / вывода.
Как только я «пинаю» задание с консоли, оно выполняется, и мой файл удаляется, поэтому я знаю, что код исправен.
Кто-нибудь получил какие-либо предложения, это действительно раздражает меня 🙁
Версия 1.4.6 имела проблему с отложенными заданиями. Обновите до 1.5 или 1.6, если вы работаете на 1.4.6
Других решений пока нет …