Laravel Queue PushRaw Delay?

时间:2018-02-15 09:09:00

标签: laravel queue beanstalkd laravel-4.2

我有一个应用程序,其中来自laravel 4.2我正在慢慢地将其转换为节点。

现在我有Queue::pushRaw(payload, tube)这个工作在节点中,这段代码工作正常。

但是我最近遇到了一个问题,我需要这些工作有延迟。

我之前使用Queue::later(当我的工作仍然在Laravel中时),但是如何使用Queue::pushRaw?我不能再使用Queue::later因为我正在传递原始有效负载而不是工作。

根据我可以传递的文件options https://laravel.com/api/4.2/Illuminate/Queue/QueueInterface.html

但是,我不知道在options传递什么延迟。

1 个答案:

答案 0 :(得分:0)

经过进一步调查,我发现了这个文件:https://github.com/laravel/framework/blob/4.2/src/Illuminate/Queue/BeanstalkdQueue.php#L66(我正在使用Beanstald)

由于DEFAULT_DELAY为0,因此无法真正传递延迟。

所以我的解决方案是在Laravel创建一份工作。

然后我可以Queue::later(delay, myJobThatCallsThePushRaw, data, queue);

然后在myJobThatCallsThePushRaw我内部Queue::pushRaw(my-node-payload)

希望这有助于将来。