草庐IT

mjob_worker

全部标签

ruby /Resque/Redis : How to set up workers on different machines?

我一直在研究分布式后台作业的resque。通过演示应用程序,我设法让所有东西都在一台机器上运行。但我不知道如何设置一切,以便worker们在不同的机器上运行。我读到worker必须连接到redis服务器。但我仍然不知道从哪里开始。某处有分步说明吗?我没有找到任何关于此的文档。或者谁能给我解释一下?顺便说一句,我不使用Rails,我使用的是Sinatra。谢谢 最佳答案 是的,你是对的,如果你所有的工作人员都可以访问redis,你可以将它们连接起来,将它们分发到不同的机器上为此,您需要将worker连接到redis(我假设所有work

python - 在 Python-RQ 中减少机器上的 worker 数量?

在Python-RQ中减少机器上工作人员数量的好方法是什么?Accordingtothedocumentation,我需要向机器上的工作进程之一发送SIGINT或SIGTERM命令:TakingdownworkersIf,atanytime,theworkerreceivesSIGINT(viaCtrl+C)orSIGTERM(viakill),theworkerwaituntilthecurrentlyrunningtaskisfinished,stoptheworkloopandgracefullyregisteritsowndeath.If,duringthistakedownp

ruby - 如何在启动时自动创建一个 resque worker?

好的,我正在制作我的第一个ruby​​应用程序。谁知道将所有内容都转移到“生产”中是如此复杂。到目前为止,我一直在努力配置passenger,让它在启动时运行,然后让redis在启动时运行。我的最后一个任务是在启动时添加1个worker。现在,我必须通过ssh登录并运行我的rake命令rakeworkers:start。显然,当我想关闭ssh时,这并不好。所以我真的不知道下一步该怎么做或做什么。我尝试将resque默认配置复制到config.ru,但它只会让Passenger出错。我还研究了一些人提到的resque-pool,但这超出了我的理解范围。我所要做的就是在启动时添加1个wor

redis - Python Reddis 队列值错误 : Functions from the __main__ module cannot be processed by workers

我正在尝试使用python-rq在redis中加入一个基本的作业,但是它抛出了这个错误"ValueError:Functionsfromthemainmodulecannotbeprocessedbyworkers"这是我的程序:importrequestsdefcount_words_at_url(url):resp=requests.get(url)returnlen(resp.text.split())fromrqimportConnection,QueuefromredisimportRedisredis_conn=Redis()q=Queue(connection=redis

ruby-on-rails - 每个 sidekiq worker 有多种方法

我不明白。根据Sidekiq文档,每个worker(我的称为FeedWorker)只能包含一个名为perform的方法。那么,如果我想通过同一个worker运行多个方法怎么办?例如,我的FeedWorker(您猜对了,它处理事件提要)应该运行以下3个方法:announce_fooannounce_barinvite_to_foo我不认为这是一个不合理的期望。我相信其他人已经考虑过这一点。我不是天才,但我知道我并没有在这里开辟新的期望。然而,目前尚不清楚如何做到这一点。现在,看起来我必须这样编码:defperform(id,TYPE)ifTYPE==BARBar.find(id)and_

ruby-on-rails - 如何检查 Resque worker 状态以确定它是死的还是陈旧的

默认的resque网络界面显示我有7个工作人员中的5个在工作。我不明白这怎么会发生。我在heroku上,所以当我的dyno重新启动时,它应该停止现有的dynos和worker,然后启动新的。所以,我假设其中一些worker已经过时了,但resque认为工作的worker比应该有的要多得多......(应该只有1个)我如何检查其中的任何一个是陈旧的还是死的?我预计只有1名worker在工作。最终,我希望我会按照这篇SO帖子所说的去做:HowdoIclearstuck/staleResqueworkers?,但首先我想知道如何确定是否应删除worker...我不想盲目地注销worker..

ruby-on-rails - 我如何清除卡住/陈旧的 Resque worker ?

正如您从所附图片中看到的那样,我有几个工作人员似乎被卡住了。这些过程不应超过几秒钟。我不确定为什么它们不会清除或如何手动删除它们。我在Heroku上使用Resque与Redis-to-Go和HireFire来自动扩展工作人员。 最佳答案 这些解决方案都不适合我,我仍然会在redis-web中看到它:0outof10WorkersWorking最后,这对我清除所有工作人员很有用:Resque.workers.each{|w|w.unregister_worker} 关于ruby-on-ra

C# 后台 worker 在 DoWork 中设置 e.Result 并在 WorkCompleted 中取回值

C#2008SP1我正在使用后台worker如果其中一个条件失败,我会将e.cancel设置为true,并将字符串分配给e.result。那里一切正常。但是,当workCompleted触发时,我测试了e.Result,我得到了一个异常“e.result抛出一个systeminvalidoperation类型的异常”。我想我可以使用全局变量在DoWork中设置并在完成的工作中进行比较。但这可能不是线程安全的。谁能告诉我为什么e.Result会出现这个问题,我该如何解决这个问题?非常感谢,privatevoidbgwPrepareCall_DoWork(objectsender,DoWo

c# - 如何使用 WPF 后台 worker

在我的应用程序中,我需要执行一系列初始化步骤,这些步骤需要7-8秒才能完成,在此期间我的UI变得无响应。为了解决这个问题,我在一个单独的线程中执行初始化:publicvoidInitialization(){ThreadinitThread=newThread(newThreadStart(InitializationThread));initThread.Start();}publicvoidInitializationThread(){outputMessage("Initializing...");//DOINITIALIZATIONoutputMessage("Initiali

javascript - Service Worker 与 Shared Worker

ServiceWorker和SharedWorker有什么区别?什么时候应该使用ServiceWorker而不是SharedWorker,反之亦然? 最佳答案 ServiceWorker具有超出共享Worker可用功能的附加功能,并且一旦注册,它们就会在给定网页的生命周期之外持续存在。Serviceworkers可以响应message事件,就像sharedworkers一样,但他们也可以访问其他事件。处理fetch事件允许服务人员拦截任何网络流量(源自受控页面)并采取特定操作,包括提供来自Request/Response缓存。还有p