问题标签 [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.
ruby-on-rails - Ruby/Rails 同步作业管理器
嗨
,我将建立一个 rails 网站,在一些初始用户输入之后,完成一些繁重的计算(通过对 ruby 的 c 扩展,将使用多线程)。由于这些计算将消耗几乎所有的 cpu 时间(也包括内存),因此一次运行的计算不应超过一个。我也不能使用(异步)后台作业(例如延迟作业),因为 rails 必须显示该计算的结果,并且该站点应该在没有 javascript 的情况下工作。
所以我想我需要一个单独的进程,其中所有 rails 实例都必须将其计算请求排队并等待答案(如果队列已满,可能会出现错误消息),这是一种同步作业管理器。
有谁知道是否有具有这种功能的 gem/插件?(nanite对我来说似乎很酷,但似乎只是异步的,所以 rails 实例不知道计算何时完成。对吗?)
另一个想法是使用分布式 ruby (drb) 编写我自己的,但为什么要发明如果它已经存在,再次轮子?
任何帮助,将不胜感激!
编辑:由于 zaius 的提示,我认为我将能够异步执行此操作,所以我将尝试resque。
java - 用于队列处理的 java API 或框架
我需要一个开源 Java API 或框架来处理队列中的项目。我可以自己开发一些东西,但不想重新发明轮子(而且我在多线程方面没有太多经验)。有这样的事吗?
我能想到的最接近的解决方案是业务流程管理 (BPM) 解决方案。
现在,我正在使用多个 Quartz 作业来处理队列中的项目。由于可扩展性和并发性问题,它并没有真正奏效。
google-app-engine - Google App Engine 请求状态
即使系统抛出500,是否可以将http请求状态设置为200?我有一个正在运行的任务。当 GAE 抛出 http 请求 500 时,我想在任务结束时手动将其设置为 200,以防止重试任务。
java - 当 App Engine (Java) 启动新实例时,如何确保任务队列 Memcache cron 在它们之间共享?
这是一个问题,我的应用程序在站点上偶尔遇到 CPU 限制峰值,其中几乎所有工作都是由于 cron 任务完成的,该任务每小时频繁运行以调用重新填充内存缓存的任务队列。
最近,该网站的流量激增,导致多个实例启动。
然而,令我惊讶的是,在那些日子里,我不得不降低 Memcache 任务的频率,尽管只有不到 1% 的 CPU 使用率与流量峰值有关。(在这个应用程序中完成的 99% 的工作是 (a) 在内存缓存任务队列中和 (b) 在客户端 JavaScript/JSON 逻辑中)。
我想知道的是,启动的其他实例是否都需要它们自己的 Memcache 任务队列,也许这就是为什么我看到与那些天重新填充 memcache 的任务队列相关的 CPU 使用率要高得多 -任务实际上是为每个实例分别执行?
如果是这样,我如何确保任务队列 - 以及它填充的 Memcache - 在实例之间共享 - 如果这可能的话?
google-app-engine - Google App Engine 任务截止日期
有没有办法在执行任务时处理任何软期限?DeadlineExceededError 在执行 10 分钟后被抛出,之后我有几秒钟的时间去做一些事情。我想在任务结束之前清理一些东西并创建一个新任务。这可能需要几秒钟。有没有办法通过捕获大约 9 分钟左右的任何异常来做到这一点。我知道我可以在 9 分钟后手动抛出异常。但这可以由 GAE 自动完成吗?
以上是我的代码。index 是一个列表,从 0 开始。它将在 FillMtx 内部递增。一旦抛出超过最后期限的错误,我想从最后增加索引的地方继续。我收到以下错误
我发现一个新任务已创建并排队。但是为什么 GAE 仍然会抛出这个错误呢?
java - Google App Engine (Java) TaskQueue API:如何查询正在运行/待处理的任务数?
是否可以以编程方式查询任务队列 API 以查看当前正在执行/待处理的任务数量?
我在 API 中看不到任何方法来执行此操作,因此我求助于在 Datastore 中创建对象来表示排队的任务。运行时,这些任务会从数据存储区中删除其相应的条目。
可以想象,这很容易不同步。实际上,我很高兴能够对给定队列名称的队列中的任务进行简单计数。
python - 使用 Python API 的 Google App Engine 任务队列错误
我已经为我正在玩的 Flask + GAE 项目实现了一个任务队列操作,以了解有关 Python Web 开发的更多信息,但我收到以下错误,我无法追踪任何有关它的信息。
我有一个视图正在接受来自我的应用程序中另一个视图的 POST 请求,据我所知,它正在执行我期望的所有处理,除了它到达最后并吐出它。我猜这是因为我在 GAE 开发服务器日志中看到了这个输出:
check_for_spam 东西是一个函数,它通过 Defensio API 运行一些数据以确定它是否是垃圾邮件。这是代码
任何有关解决此问题的帮助将不胜感激。
python - 在 Django 中使用 Google App Engine Queues 服务
我正在尝试使用 Google App Engine 队列 API,但在测试时遇到了问题。似乎在流程的某些部分中,CSRF 无法正常工作。
据我了解,api执行调用url并在后台发出http请求的任务。
API 调用的完整 url 是 → http://localhost.localdomain:8000/admin/cooking/recipe/36/chefworker/
当它引发此异常时:
因此,GAE api 为在后台执行任务而发出的请求中缺少 csrf 中间件、cookie、某些数据或响应本身。
如何在不禁用 Django 上的 CSRF 的情况下解决这个问题?但是,djangoappengine 完全可以吗?
下面是我正在使用的 models.py 和 admin.py 文件。
模型.py
管理员.py
重要说明: 很难调试此错误,因为 dev_appserver 记录器只是引发 403 错误,没有其他信息;所以,我必须修补文件 google/appengine/api/taskqueue/taskqueue_stub.py 第 574 行并添加“logging.info('response --- \n%s' % result)”以获得输出。
python - Google App Engine 负载对象
python - 如何在python任务的有效负载中发送类对象?我想在任务的参数中发送一个对象。
当我使用simplejson
时,我得到错误:Object is not serializable
。
当我使用泡菜时,我得到KeyValue Error
.
这该怎么做 ?
这是我要序列化的类
当我将腌制对象作为有效负载传递并稍后将其卸载时,出现以下错误