问题标签 [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.
cron - 管理 Ironworker 任务队列延迟
我有一个项目,我们从 iPhone 客户端向我们的 API 发出请求,api 产生一个 ironworker 任务,如果任务完成,它会通知 iPhone 客户端和几部 Android 手机一切顺利,它们都应该连接到一个套接字。所有这一切都需要在 30 秒内发生,否则 iPhone 和 Android 手机不应获得套接字连接,而是会收到“抱歉,稍后再试”的响应。
但有时发生的情况是,我们的工作队列 Ironworker 正在备份,完成任务(作业)需要 2 到 5 分钟。不让这种情况发生的最好方法是什么?可以向经理介绍一些如何查看队列中的作业,以及他们是否需要长时间终止作业并发出“抱歉稍后再试”?
如果经理不是解决方案,我将如何进行设置?
php - 队列作业是队列感知还是使用服务更好?
我正在使用SlmQueue(或将要使用),并且我正在尝试决定是否最好让这些作业自行重新安排、生成新作业等(使用 QueueAwareInterface),或者是否最好让每个作业都有一个共享服务作为依赖项,并让该服务管理作业的重新排队/生成等。
两种方法都有优缺点吗?
php - 每个用户的 Beanstalkd 队列进程
我有一个有几千个用户的应用程序。每个用户在队列中可以有 10 到 100 个作业。我不希望我的员工(约 10 个)处理 10 个不同用户的 10 个工作,而不仅仅是 10 个工作(可能来自同一个用户)。
所以在上面的例子中,我希望我的工人按以下顺序处理:
有没有什么方法可以用 beanstalkd(首选)或 gearman 轻松实现?
celery - 如何在 Celery 中折叠并连续运行任务 - 对抗者
我在 Celery 中有任务 A 和 B。B 是 A 的对手。因此,当这个任务以相同的参数并行运行时,系统变得不一致。有两个问题:
我可以始终根据参数连续运行任务 A 和 B 吗?我想连续运行带有参数 1 的 A 和带有参数 1 的 B,但是 A(1) 和 B(2) 可以并行运行。
有没有办法折叠尚未运行的重复任务序列?比如说,我在代理中有 ABABAB 任务(在我的例子中是 Redis),我可以只执行 AB 吗?
我倾向于认为这两个问题都可以通过高级代理解决,但我想避免部署 RabbitMQ。
提前致谢。
file - Beanstalkd 或其他作业/消息队列:发送文件?
我们正在寻找一种工作/消息队列技术。在比较了主要的(RabbitMQ、ActiveMQ、Apollo、ZeroMQ..)之后,我们选择了 Beanstalkd,因为显然,与 RabbitMQ 相比,“它提供了 80% 的功能和 20% 的重量和复杂性”。
但是在查看它的工作原理时,我们没有找到任何通过这个队列系统发送文件的方法。有没有办法做到这一点?
也许我应该解释一下我们的情况。我们有一个 Web 服务器和一个本地服务器。首先,我们希望通过队列实现 Web 服务器“请求”本地服务器以生成复杂的 PDF,并在完成后将其发送回 Web 服务器,以便向访问者显示.
那么也许这不是正确的技术?
php - ZF2 - 使用 SlmQueueBeanstalkd 和 DOMPDFModule 创建 PDF 文件的作业队列
我正在尝试运行一个作业队列以使用ZFSlmQueueBeanstalkd
和in 创建 PDF 文件”。DOMPDFModule
这是我在控制器中所做的:
这是工作:
第一次运行,文件创建完成,工作成功,但第二次运行,任务被埋没,文件没有创建。
在尝试第二次渲染模型时,它似乎处于无休止的循环中。
asynchronous - 在网页中同步显示作业队列工作任务
我在 RQ-worker 中有一个异步任务从互联网下载文件,我想监控网页中的进度,我在互联网上搜索,找不到任何同步显示进度或任务状态的方法。
有一种方法是,我将 RQ-worker 状态保存在 mysql 中,每次当我的作业队列更改状态时,更新 mysql 中的行,在 html 网页中,设置一个计时器,每隔一两秒请求一次 api,然后刷新状态 div。
我只想知道有没有其他更优雅的方法来解决这个问题?
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。它具有相同的值/细节,所以我在这里处于死胡同。
重新启动应用程序时,我在输出/显示上出现以下异常,但在日志中却没有:
所以现在我想知道,
- 是不是在作业排队时,与 DB 的连接在两者之间丢失,导致 Oracle 调度程序在两者之间“挂起”?
- 我需要验证/验证任何其他数据库参数吗?这是 Oracle 中的一个已知错误吗?如果是,它是否记录在任何地方?对不起,我可能错过了阅读。
- 是否有任何其他信息需要我要求 DBA 检查?
提前感谢您的帮助。
编辑:查询输出的链接=>select * from DBA_SCHEDULER_JOBS
在链接的excel中给出:Job_output.xlsx
谢谢!
2014 年 3 月 20 日更新
问题还没有解决。因此,查询的更多输出将在问题下方发布。
symfony - 使用 gearman 正确实现作业队列,从子任务中获取状态
我想要实现的目标:用户上传数据文件。它被添加到队列中,当轮到它时,它会创建许多并行任务,包括转换该文件中的行。任何时候用户想要,他都可以获得转换多少行的状态(以 % 为单位)。
我决定和 gearman 一起去,因为将来将工人转移到其他服务器和其他东西可能是件好事。据我了解,您应该避免在使用工作人员时使用不必要的数据库连接,因此将状态存储在数据库中不是一个可行的选择。
我试过这样的事情:控制器创建新的后台任务(文件处理),这个任务调用较小的任务(转换,我使用后台来实现并行),然后将最终结果上传到数据库。Gearman 事件监听器仅适用于非后台任务(至少在我尝试附加它时)。
我应该获取所有任务并检查作业参数以将其链接到特定 ID,还是可以以某种方式将附加参数传递给作业?
GearmanClient::jobStatus 需要作业句柄,我无权访问,因为它是在一个请求中创建的后台进程,但在另一个请求中需要。
抱歉文字墙,感谢您的帮助!
java - 在 run() 之后执行的线程中的 Java 回调执行
我正在使用作业队列库,您可以在其中定义Job
s 并将它们发布到JobManager
. 有JobManager
一个ThreadGroup
with worker 将Job
s 从队列中拉出来并调用Job.onRun()
。
线程的数量是通过给出最大和最小线程数量、负载因子(一个工作线程在创建一个新的之前可以有多少未完成的作业)和任何高于最小值的线程的空闲超时来设置的。因此,如果一个工作线程run()
没有新的工作,它就会终止,并且达到它的空闲超时。
在某些Job
情况下,我使用仅公开异步 API 的库。在 onRun() 中使用这些安全吗?
例如,如果我想发出一个网络请求,该请求接受一个为我提供响应的回调,回调将被调用: