我正在使用BullMQ和快递服务器异步处理作业,但不知道如何从已完成的作业中检索结果。
我目前要做的是侦听作业完成状态事件,并将这些结果存储在一个以作业Id作为键的对象中,并在需要时从该对象检索结果。有推荐的方法吗?
我查看了,但没有找到任何关于如何检索结果的信息。
下面是示例代码:
server.js
// Kick off a new job by adding it to the work queue
app.post("/api/submitjob", async (req, res) => {
let job = await workQueue.add();
我有一个我希望是一个非常简单的问题,但我对Sun Grid不是特别熟悉,所以我一直在寻找答案。我目前正在使用一个bash提交脚本向网格提交作业,该脚本生成一个命令,然后执行它。我在网上读到,如果sun网格作业以代码99退出,它将被重新提交到网格。我已经成功地编写了我的bash脚本来实现这一点:
[code to generate command, stores in $command]
$command
STATUS=$?
if [[ $STATUS -ne 0 ]]; then
exit 99
fi
exit 0
当我将此作业提交到网格时,如果我知道该命令的退出状态为非零,则该作业看
我正在尝试实现,当队列作业访问外部API时,这个API是有限的。
我的工作是:
public function handle() {
echo 'about to check throttling'.PHP_EOL;
Redis::throttle('throttle-test')->allow(10)->every(5)->then(function () {
// this is never executed
echo 'doing work
Laravel 5.2 $this->dispatch未调用句柄函数
我使用下面的控制器
namespace App\Http\Controllers;
use App\User;
use Illuminate\Http\Request;
use App\Jobs\SendReminderEmail;
use App\Http\Controllers\Controller;
use Redis;
class HomeController extends Controller
{
/**
* Send a reminder e-mail to a given user.
我正在运行一个烧瓶服务器,它可以连接到一个iOS客户端,并使用烧瓶-Socketio。服务器必须处理一些复杂的数据,因为这需要一段时间来解决,所以我使用Redis队列在后台工作。
通信正常工作,但我需要发出到客户端,并在作业完成后写入数据库,我正在尝试从作业函数中完成(如果有方法让应用程序知道作业完成时,应用程序可以在一个地方处理所有的通信)。
为此,我在作业中启动了一个Socketio的新实例,并将其连接到redis队列,但我认为我这样做是错误的。
它没有崩溃,但客户没有收到任何东西。
这是我的代码:
tasks.py
# This is the job
def engine(path, i
我在默认的redis队列中有作业延迟,当模型的状态更新到某个值时,我想删除它。 所以我使用了更新的观察者: /**
* If status change from active to draft remove delayed job
*
* @param Draw $draw
*/
public function updated(Draw $draw)
{
$originalStatus = $draw->getOriginal('status');
$newStatu
问:如何自定义长时间运行的作业,而不会在每个retry_after秒后多次尝试? 我有一个作业需要1到3个小时才能运行,我已经创建了作业-基于laravel文档,这是我的作业文件。 <?php
namespace App\Modules\Csv\Jobs;
use App\Jobs\Job;
use Illuminate\Bus\Queueable;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Foundation\Bus\Dispatchable;
use Illuminate\Queue\Interac