问题标签 [workling]
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 - 如何同步多个 Workling 工作人员?
我有以下情况:
- 三项任务:A、B、C(作为 Workling 工人实施)
- 两个用户事件(控制器方法的调用)
任务以这种方式触发:
- 第一个用户事件触发任务 A 和任务 B。
- 然后可选的用户事件可以触发任务 C,但该任务必须在任务 A 和 B 完成之前运行。
我怎样才能强制执行这一系列事件?
一种方法是在任务 C 开始时执行任务 A 和 B,但触发任务 C 的用户事件可能永远不会发生,但仍然必须执行任务 A 和 B。
在“正常”程序中,我可以使用整个同步对象库(互斥锁、信号量、临界区……)。但我能在这里做什么?
(如果重要的话,Rails 应用程序将在 Linux 服务器上运行,并且 Workling 设置为使用 Starling)
ruby-on-rails - 工作不在后台运行任务
我遵循了描述如何让运行后台任务的railscast,但无法使其正常工作。任务运行,但不在后台运行(在我被重定向到 admin_path 之前需要 5 秒)。
这是我的代码的样子:
class AdminWorker < Workling::Base
def test_workling(options)
sleep 5
end
endclass AdminController < ApplicationController
def test_workling
AdminWorker.asynch_test_workling
flash[:notice] = "在后台做事"
redirect_to admin_path
end
end
我究竟做错了什么?如何调试?
谢谢!
ruby-on-rails - Rails 后台作业处理
我在我的 rails 应用程序中使用 starling 作为队列服务器。所以每次我想调用工作方法时,我都必须从控制台开始八哥和工作客户端。
有没有一种方法,一旦乘客启动,我的工作和八哥都会自动启动,或者当我调用 worker 方法时,只有我的工作实例会被创建。
ruby - 需要一个 ruby 解决方案来在单独的进程中执行方法
我正在实现一个轮询服务,其界面如下所示。
该start
方法应该不断地开始点击 http 请求并更新数据库中的内容。一旦start
ed,该过程应该继续,直到它被明确地stop
ed。
我了解实现start
需要在新进程中生成和运行。我不太确定如何在 Ruby 中实现这一点。我想要一个 ruby 解决方案,而不是一个特定于 ruby 框架的解决方案(不是 rails 插件或 sinatra 扩展。只是 ruby gems)。我正在探索 eventmachine 和 starling-workling。我发现 eventmachine 太大而无法在短时间内理解,并且工作是一个插件而不是一个 gem。所以让它为 Ruby 应用程序工作是一件痛苦的事情。
我需要有关如何实现这一目标的指导。任何指针?代码示例会有所帮助。
编辑
Eventmachine 或 starling-workling 解决方案将优于线程/分叉。
ruby-on-rails - 工作和 RabbitMQ
嗨,对于我的项目,我想使用 workling 在后台运行一些作业(将一些数据发布到队列),但是在尝试配置我的应用程序时遇到错误(未初始化的常量 MemCache)我使用的是 Fedora 13 + ruby 企业版我的问题是
最近有人工作过吗?一切都好吗?
您是否尝试运行“script/workling_client start”?你有没有得到任何错误?
有人可以建议一些替代工作的方法吗?
谢谢 :)
ruby-on-rails - 工作客户端在启动后几秒钟内停止
嗨,我正在尝试使用 RabbitMQ 而不是 Starling 我已经配置了我的应用程序,一切似乎都很好,但是当我运行 'script/workling_client start' 时,它开始工作并在几秒钟后结束,我不明白为什么
我的应用程序与 Starling 完美配合
我正在使用 Fedora 13 ruby 1.8.7 rails 2.3.8 mongrel(根据http://github.com/tmm1/amqp配置)
日志文件为空,但代码 isidelisten
操作肯定会执行
ruby-on-rails - 当我的 Rails 应用程序中的数据库关闭时,工作不起作用
我想安排我的工作人员使用 cron 作业定期检查数据库连接(比如 5 分钟)并相应地更新 memcache 键。所以在我的应用程序中,如果我找到要设置的 memcache 变量。当数据库启动时,我会以不同的方式呈现我的页面。
但问题是,当数据库关闭时,worker 不会启动。当数据库启动时。它正确地发现存在数据库连接并更新 memcache 变量并且一切正常。
我不知道,为什么当数据库关闭时工作人员不启动。我快到最后期限了。非常感谢任何帮助!
更新:
这是我在工作没有开始时得到的错误
/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/activerecord-2.1.1/lib/active_record/connection_adapters/mysql_adapter.rb:527:inreal_connect': Can't connect to MySQL server on '10.223.2.50' (111) (Mysql::Error)
from /apps/Symantec/shasta/website/vendor/plugins/workling/script/../lib/workling/starling/poller.rb:35:in
从 /apps/Symantec/shasta/website/vendor/plugins/workling/script/../lib/workling/starling/poller.rb:35:in listen'
from /apps/Symantec/shasta/website/vendor/plugins/workling/script/../lib/workling/starling/poller.rb:35:in
each' 从 /apps/Symantec/shasta/website/vendor/加入plugins/workling/script/../lib/workling/starling/poller.rb:35:in listen'
from /apps/Symantec/shasta/website/vendor/plugins/workling/script/listen.rb:19
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:203:in
load' 来自 /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/ gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:203:in start_load'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:296:in
start' from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby /gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:51:inwatch'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:51:in
来自 /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:51 的 fork :在watch'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:45:in
每个'来自 /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:45watch'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:44:in
来自/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb的:循环中:44:在watch'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:84:in
start_with_pidfile' 中来自 /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb :64:in fork'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor.rb:64:in
start_with_pidfile' 来自 /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/monitor。 RB:111:在start'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application_group.rb:149:in
来自/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/application.rb:283的create_monitor:从start'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/controller.rb:70:in
/apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:143:in 运行run'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112:in
来自 /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons/cmdline.rb:112 的调用:在catch_exceptions'
from /apps/Symantec/shasta/website/install/local/ruby-1.8.7-p299/lib/ruby/gems/1.8/gems/daemons-1.1.0/lib/daemons.rb:142:in
运行中'来自脚本/workling_starling_client:17
ruby-on-rails - 在 Rails 中使用 workling 处理 45k 的数据库记录而不影响服务器性能
在我的 rails 应用程序中,我使用工作进程每 6 小时扫描一次 45k 数据库记录,并在满足特定条件时发送邮件。这会导致服务器 CPU/负载在工作人员处理时达到峰值。因此,其他服务器请求会受到性能影响。我尝试使用 find_in_batch 一次检索 1000 条记录并进行处理。但 CPU 利用率仍处于峰值水平。我看不出有什么大的区别。有没有办法处理这个问题,所以 CPU 利用率没有达到最大限制?
ruby-on-rails - Rails 上的 Starling/Workling 问题
我正在尝试开始和工作rails 3
,但遇到了一些问题。我已经starling-starling
安装在 gemfile 中,并通过以下方式安装工作:
然后我写信给我的工人:
并将以下调用放在我的控制器中:
我启动了我的八哥守护进程:
然后是我的工作监视器:
我没有收到任何命令的错误。然而,当控制器调用工人时,什么也没有发生。在日志中创建了一个文件,称为bot_workers_bot_test
存储 uid 的位置,但它们似乎从未传递给 BotWorker 类。
有人对我可能做错了什么有任何建议吗?提前感谢您的任何答案!