我有一个应用程序,其中来自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
传递什么延迟。
答案 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)
。
希望这有助于将来。