问题标签 [job-queue]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
152 浏览

cron - 管理 Ironworker 任务队列延迟

我有一个项目,我们从 iPhone 客户端向我们的 API 发出请求,api 产生一个 ironworker 任务,如果任务完成,它会通知 iPhone 客户端和几部 Android 手机一切顺利,它们都应该连接到一个套接字。所有这一切都需要在 30 秒内发生,否则 iPhone 和 Android 手机不应获得套接字连接,而是会收到“抱歉,稍后再试”的响应。

但有时发生的情况是,我们的工作队列 Ironworker 正在备份,完成任务(作业)需要 2 到 5 分钟。不让这种情况发生的最好方法是什么?可以向经理介绍一些如何查看队列中的作业,以及他们是否需要长时间终止作业并发出“抱歉稍后再试”?

如果经理不是解决方案,我将如何进行设置?

0 投票
1 回答
90 浏览

php - 队列作业是队列感知还是使用服务更好?

我正在使用SlmQueue(或将要使用),并且我正在尝试决定是否最好让这些作业自行重新安排、生成新作业等(使用 QueueAwareInterface),或者是否最好让每个作业都有一个共享服务作为依赖项,并让该服务管理作业的重新排队/生成等。

两种方法都有优缺点吗?

0 投票
1 回答
258 浏览

php - 每个用户的 Beanstalkd 队列进程

我有一个有几千个用户的应用程序。每个用户在队列中可以有 10 到 100 个作业。我不希望我的员工(约 10 个)处理 10 个不同用户的 10 个工作,而不仅仅是 10 个工作(可能来自同一个用户)。

所以在上面的例子中,我希望我的工人按以下顺序处理:

有没有什么方法可以用 beanstalkd(首选)或 gearman 轻松实现?

0 投票
1 回答
150 浏览

celery - 如何在 Celery 中折叠并连续运行任务 - 对抗者

我在 Celery 中有任务 A 和 B。B 是 A 的对手。因此,当这个任务以相同的参数并行运行时,系统变得不一致。有两个问题:

  1. 我可以始终根据参数连续运行任务 A 和 B 吗?我想连续运行带有参数 1 的 A 和带有参数 1 的 B,但是 A(1) 和 B(2) 可以并行运行。

  2. 有没有办法折叠尚未运行的重复任务序列?比如说,我在代理中有 ABABAB 任务(在我的例子中是 Redis),我可以只执行 AB 吗?

我倾向于认为这两个问题都可以通过高级代理解决,但我想避免部署 RabbitMQ。

提前致谢。

0 投票
1 回答
376 浏览

file - Beanstalkd 或其他作业/消息队列:发送文件?

我们正在寻找一种工作/消息队列技术。在比较了主要的(RabbitMQ、ActiveMQ、Apollo、ZeroMQ..)之后,我们选择了 Beanstalkd,因为显然,与 RabbitMQ 相比,“它提供了 80% 的功能和 20% 的重量和复杂性”

但是在查看它的工作原理时,我们没有找到任何通过这个队列系统发送文件的方法。有没有办法做到这一点?

也许我应该解释一下我们的情况。我们有一个 Web 服务器和一个本地服务器。首先,我们希望通过队列实现 Web 服务器“请求”本地服务器以生成复杂的 PDF,并在完成后将其发送回 Web 服务器,以便向访问者显示.

那么也许这不是正确的技术?

0 投票
1 回答
995 浏览

php - ZF2 - 使用 SlmQueueBeanstalkd 和 DOMPDFModule 创建 PDF 文件的作业队列

我正在尝试运行一个作业队列以使用ZFSlmQueueBeanstalkd和in 创建 PDF 文件”。DOMPDFModule

这是我在控制器中所做的:

这是工作:

第一次运行,文件创建完成,工作成功,但第二次运行,任务被埋没,文件没有创建。

在尝试第二次渲染模型时,它似乎处于无休止的循环中。

0 投票
0 回答
110 浏览

asynchronous - 在网页中同步显示作业队列工作任务

我在 RQ-worker 中有一个异步任务从互联网下载文件,我想监控网页中的进度,我在互联网上搜索,找不到任何同步显示进度或任务状态的方法。

有一种方法是,我将 RQ-worker 状态保存在 mysql 中,每次当我的作业队列更改状态时,更新 mysql 中的行,在 html 网页中,设置一个计时器,每隔一两秒请求一次 api,然后刷新状态 div。

我只想知道有没有其他更优雅的方法来解决这个问题?

0 投票
0 回答
4573 浏览

oracle - Oracle 作业调度程序“卡住”

我们有 2 个生产环境,比如 XX 和 XY。两者都在 Oracle 11g 版本 11.2.0.2.0 上。这两种环境都有一个队列表和一个作业队列,用于将作业入队/出队并处理它们。应用程序服务器是 Apache Tomcat 版本 6.0.32。

我面临的问题是,在 XX 环境中,Oracle 调度程序几乎每天都会在当地时间下午 4.30 被“挂起”或“卡住”,而在 XY 环境中它工作得非常好。计划作业的条目开始在队列表中累积,从而触发警报。然后有人必须重新启动应用程序服务器,之后整个事情工作得很好,待处理的作业被处理而没有任何问题。DBA 总是说数据库没有问题,但我不太相信。

在谷歌上搜索让我找到了这个链接:升级到 11.2 后 DBMS_SCHEDULER 作业卡住了 根据解释,我检查并比较了 DB 参数job_queue_processes。它具有相同的值/细节,所以我在这里处于死胡同。

job_queue_processes 的值

重新启动应用程序时,我在输出/显示上出现以下异常,但在日志中却没有:

所以现在我想知道,

  • 是不是在作业排队时,与 DB 的连接在两者之间丢失,导致 Oracle 调度程序在两者之间“挂起”?
  • 我需要验证/验证任何其他数据库参数吗?这是 Oracle 中的一个已知错误吗?如果是,它是否记录在任何地方?对不起,我可能错过了阅读。
  • 是否有任何其他信息需要我要求 DBA 检查?

提前感谢您的帮助。

编辑:查询输出的链接=>select * from DBA_SCHEDULER_JOBS在链接的excel中给出:Job_output.xlsx

谢谢!

2014 年 3 月 20 日更新

问题还没有解决。因此,查询的更多输出将在问题下方发布。

0 投票
0 回答
140 浏览

symfony - 使用 gearman 正确实现作业队列,从子任务中获取状态

我想要实现的目标:用户上传数据文件。它被添加到队列中,当轮到它时,它会创建许多并行任务,包括转换该文件中的行。任何时候用户想要,他都可以获得转换多少行的状态(以 % 为单位)。

我决定和 gearman 一起去,因为将来将工人转移到其他服务器和其他东西可能是件好事。据我了解,您应该避免在使用工作人员时使用不必要的数据库连接,因此将状态存储在数据库中不是一个可行的选择。

我试过这样的事情:控制器创建新的后台任务(文件处理),这个任务调用较小的任务(转换,我使用后台来实现并行),然后将最终结果上传到数据库。Gearman 事件监听器仅适用于非后台任务(至少在我尝试附加它时)。

我应该获取所有任务并检查作业参数以将其链接到特定 ID,还是可以以某种方式将附加参数传递给作业?

GearmanClient::jobStatus 需要作业句柄,我无权访问,因为它是在一个请求中创建的后台进程,但在另一个请求中需要。

抱歉文字墙,感谢您的帮助!

0 投票
3 回答
8501 浏览

java - 在 run() 之后执行的线程中的 Java 回调执行

我正在使用作业队列库,您可以在其中定义Jobs 并将它们发布到JobManager. 有JobManager一个ThreadGroupwith worker 将Jobs 从队列中拉出来并调用Job.onRun()

线程的数量是通过给出最大和最小线程数量、负载因子(一个工作线程在创建一个新的之前可以有多少未完成的作业)和任何高于最小值的线程的空闲超时来设置的。因此,如果一个工作线程run()没有新的工作,它就会终止,并且达到它的空闲超时。

在某些Job情况下,我使用仅公开异步 API 的库。在 onRun() 中使用这些安全吗?

例如,如果我想发出一个网络请求,该请求接受一个为我提供响应的回调,回调将被调用: