Laravel 队列 PushRaw 延迟?

Laravel Queue PushRaw Delay?

我有一个应用程序,其中从 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 来延迟。

经过进一步调查,我发现了这个文件: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)

希望这对以后的人有所帮助。