问题标签 [task-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.
msmq - Quartz.net 和/或 MSMQ?
我正在编写一个需要在特定时刻运行任务的应用程序,因此我计划为此使用 Quartz.NET。需要运行的任务有多个步骤,其中一些可能有点密集,所以我正在考虑使用 MSMQ 之类的东西来排队任务的每个部分,并有更小的集中子任务来分散负载,而不是一项任务。
唯一的问题是,它会绕过我想用来确保任务完成的 Quartz.NET 失败任务功能。
任何人都可以建议一种单独使用 Quartz.NET 来做所有事情的方法吗?或者如何同时使用 MSMQ,并且仍然能够使用 Quartz.NET “任务失败”功能?(或任何其他我可能不知道的方式?)
python - numpy 和多处理队列的组合扰乱了队列的排序
我正在使用以下模式进行多处理:
哪个工作正常。但是,如果我通过 发送一个 numpy 数组outQ
,则'STOP'
不会以 结尾outQ
,导致我的结果获取循环提前终止。
这是一些重现行为的代码。
如果您将 替换为result = np.random.rand(1,100)
类似result = i*i
代码的内容,则可以按预期工作。
这里发生了什么?我在这里做一些根本错误的事情吗?我本来期望outQ.put()
afterinQ.join()
做我想做的,因为join()
直到所有进程都完成所有put()
s 之前的块。
为我工作的解决方法是使用 进行结果获取循环while outQ.qsize() > 0
,这可以找到。但我读qsize()
的不可靠。只有在不同的进程运行时才不可靠吗?qsize()
做完之后我可以依靠inQ.join()
吗?
我希望有些人建议使用multiprocessing.Pool.map()
,但是在使用 numpy 数组(ndarrays)执行此操作时,我遇到了 pickle 错误。
感谢您的关注!
python - 任务队列设置精确/近似执行时间
是否可以在 GAE 上设置以指定速率(5/s、100/h)执行的计划任务的准确或至少近似执行时间?
c# - C# 关于排队的建议
我正在就分配给我的一个项目寻求建议,并希望了解它是如何“专业地”完成的,或者任何可以引导我走向正确方向的建议。
我有一个服务器部件,它接受来自客户端的命令并将字节流推送到串行端口。尽管多个客户端可以向该服务器发送命令,但我们的硬件一次只能处理一个命令。我的问题是在软件端排队。
我已经实现了一个Queue<T>
帮助类,它也将数据插入到一个 DataSet 中,其中包含:请求的客户端编号、消息数据(要写入串行端口的字节数组)和消息类型(命令描述)。它还将列出 DataGrid(在窗体上)中的队列命令。可能不是要走的路,但这是我唯一能想到的保留请求客户端和数据并在视觉上显示队列的方法。
我在哪里处理队列的处理?我考虑在自定义事件上处理它,如果 DataGrid 列表发生更改(添加/删除项目),则获取 DataSet 中的第一行数据并将其发送到串行端口。
非常感谢任何意见或建议。
谢谢。
编辑:我忘了补充一点,它也需要来自 SerialPort 的响应,以便从队列中删除当前执行的命令。
google-app-engine - App Engine:是否可以异步排队任务?
我的许多处理程序将任务添加到任务队列以执行非关键后台处理。由于此处理并不重要,因此如果对 taskqueue.add() 的调用引发异常,我的代码将忽略它。
今晚任务队列似乎下降了大约半个小时。尽管我的处理程序正确地忽略了失败,但他们用了大约 5 秒的时间让 taskqueue.add() 调用超时并继续处理页面的其余部分。因此,这使我的网站运行非常缓慢。
那么,是否有可能将任务异步排队——这意味着一种添加任务的方式,而无需等待查看添加是否成功?
或者,有没有办法将超时从 5 秒减少到例如 1 秒?
谢谢。
python - Google App Engine:task_retry_limit 不起作用?
我有一个 Python GAE 应用程序。
我希望我的任务停止运行,或者如果它们失败就重试一次。现在,不管我的 yaml 文件告诉他们什么,他们都会永远运行!
这是一个 queue.yaml 条目:
如果 globalPurchase 任务失败并出现 500 错误代码,它将永远重试,直到它成功并在日志中显示以下消息:
“队列“globalPurchase”上名为“task14”的任务失败,代码为 500;将在 30 秒后重试”
为什么 task_retry_limit 实际上没有被使用?
python - 当 appengine 上的任务队列为空时运行函数
我每天都有一项 cron 工作来调用 API 并获取一些数据。对于每一行数据,我启动一个任务队列来处理数据(这涉及通过进一步的 API 查找数据)。一旦所有这些都完成了,我的数据在接下来的 24 小时内都不会改变,所以我将其存储在内存中。
有没有办法知道我排队的所有任务何时完成,以便我可以缓存数据?
目前,我只是安排两个这样的 cron 作业,以一种非常混乱的方式来做这件事:
然后我的 cron.yaml 看起来像这样:
基本上 - 我猜测我所有的任务运行时间不会超过 5 分钟,所以我只需在 5 分钟后刷新缓存,这样可以确保在缓存数据时它是完整的。
有没有更好的编码方法?感觉我的解决方案不是最好的....
谢谢汤姆
google-app-engine - TaskQueues 处理能力的爆发?
我有一种情况,我想对数据存储区进行 1000 个不同的查询,对每个单独查询的结果进行一些计算(以获得 1000 个单独的结果),然后返回结果列表。
我希望将结果列表作为开始计算的相同 30 秒用户请求的响应返回,以获得更好的客户端性能。哈!
我有一个大胆的计划。
这些操作中的每一个通常在一秒钟内完成都没有问题,它们都不需要像任何其他操作一样写入相同的实体组,并且它们都不需要来自任何其他查询的任何信息。是否有可能启动 1000 个独立任务,每个任务都处理其中一个查询,进行计算,并将结果存储在某种临时实体集合中?原始请求可能会等待 10 秒,然后对数据存储中的结果进行一次查询(也许它们都设置了一个我可以查询的唯一值)。任何尚未出现的结果都会在客户端被注意到,并且客户端可以在另外十秒钟内再次请求这些值。
我希望有经验的应用工程师能回答的问题是:
- 这很荒谬吗?如果是这样,对于任何数量的任务来说都是可笑的吗?一次50是否合理?
- 如果我每秒读取同一个实体 20 次,我不会遇到数据存储争用,对吗?那些争论的东西都是为了写?
- 有没有更简单的方法来从任务中获得响应?
google-app-engine - Google App Engine 添加的任务丢失
当我将任务添加到任务队列时,有时任务会丢失。我没有收到任何错误,但我只是在日志中找不到任务。假设我添加了 n 个任务。如果这 n 个任务没有完成,计算就无法进行。但是,我发现这些 n 个任务中的一个或多个在添加后就丢失了,而我的整个算法在中间停止了。可能是什么原因 ?我保留一个变量 w 来检查添加任务的次数。我观察到 w = n 虽然没有创建一些任务。
objective-c - 停止将图像上传到 Web 服务器?
我有一个 iPhone 应用程序,其中包含要上传到 Web 服务器的图片队列。问题是:如何创建一个 IBAction 来停止上传?这是我的代码片段:
谢谢,库尔顿!