草庐IT

resque-scheduler

全部标签

ruby-on-rails - 添加任务resque时如何设置过期时间?

我将Rails与Resque结合使用。我知道redis-cli的命令是:expirekey100但是添加任务resque时不知道如何设置过期时间,怎么办? 最佳答案 获取redis连接:Resque.redis.expire"key",100redis在redis-rbgem中定义 关于ruby-on-rails-添加任务resque时如何设置过期时间?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com

sinatra - resque worker 负载分配不公平

我有一个由ActiveRecord支持的ResqueJob,它将发布消息保存到数据库。有7个工作实例正在运行。我向我的sinatra应用程序发送了20K条记录。当我查询redis数据库时,我看到以下结果...redis>getresque:stat:processed:localhost:6929:default"5696"redis>getresque:stat:processed:localhost:6930:default"1"redis>getresque:stat:processed:localhost:6942:default"1"redis>getresque:stat:

redis - 如果不使用 Rails,如何在 Resque 中设置 Redis url?

在rails中,添加一个config/resque.yml很容易,但是我们在命令行上运行一个gem,我们想告诉它在哪里寻找Resque作业而不是默认的localhost:6379现在,我们通过转到gem库然后运行​​rakeresque:work等来运行我们的gem。那么我们如何告诉它redis在哪里?(redis可以在网络中的另一台机器上或在云) 最佳答案 基于corroded的回答,我必须这样做:require"./my_class"require"resque"Resque.redis='server:port'require

ruby - resque redis 套接字超时

我在EC2集群上运行resque。我有大约10个工作人员在2个大型实例上运行,另一个大型实例运行redis本身,但每3分钟resque工作人员就会被杀死,因为与redis的套接字连接超时。有没有人遇到过这个问题? 最佳答案 也许您想在redis.conf中设置timeout=0,这样您的服务器将允许您的客户端无限期地空闲。默认值为300秒(五分钟)。另一种选择是让您的客户端每隔几分钟发出一次RedisPING命令(响应应该是字符串“PONG”)。我没有看到Resque有任何选项可以为您提供这种保持事件状态(尽管我确实看到了对keep

ruby - 如何使用 resque 发送响应

我们这里有3个resqueworker,负责处理和转换一些数据。现在,我需要向向我发送数据的人发送回复。如何发送回复?resque是否有异步方式向客户端发送响应? 最佳答案 Resque不能(也从未被设计成)这样做,但是,您可以使用redis或您的数据库作为通信机制。我们实际上是在处理长时间运行的任务时这样做的。例如,只需在将作业入队时在Redis中创建一个新键,并将该键与作业参数一起传递。随着作业的处理,它可能会更新redis中的那个键。排队该工作的人只需要观察该Redis键的变化。如果轮询是一个问题,还有更高效的“推送”类型的解

ruby-on-rails - 在 RSpec 中测试 Resque + Redis

我在生产环境中使用Redis+Resque,想测试作业是否已排队并正常运行。我正在寻找这样的东西Resque.jobs(:queue_name).size.should==0post:some_action#ThisactioncausesaResquejobtobeenqueued#TestEnqueuingResque.jobs(:queue_name).size.should==1Resque.jobs(:queue_name).last.klass.should=="MyJob"Resque.jobs(:queue_name).last.args.should==[1,"Arg

ruby - 在没有 Rails 的情况下使用 RubyMine 调试 Resque 作业

使用Rubymine,我正在尝试调试一些通过resque在redis中生成作业的ruby​​脚本。不使用Rails我正在使用积极的支持问题是我不知道,也无法通过谷歌直接搜索到关于这个主题的任何真正有用的信息。我不反对尝试pry等其他方法,但我希望能够从Rubymine中调试这些作业。提前致谢。 最佳答案 您应该能够通过启动Rake任务在Rubymine中进行调试。转到Run->EditConfigurations...->+(右上角按钮)->Rake并使用以下命令进行设置:任务名称:resque:work环境变量:QUEUE=*保存

ruby-on-rails - Rails 5 - Resque 不处理排队的作业

我正在尝试使用Resque1.26.0(和Redis-rb3.3.1)进行简单的排队。该作业似乎没有处理perform函数,因为resque-web正在处理每个作业并显示0次失败。这些作业也在即时处理。作业从Controller操作中排队Resque.enqueue(TestJob,url)工作本身看起来像classTestJob还设置了rake任务:require'resque/tasks'task"resque:setup"=>:environmentredis-server正在运行。worker以rakeresque:workQUEUE=*启动。使用详细日志记录不会显示任何有用信

ruby - 如何在不同的服务器上运行 Resque worker 但从一台 redis 服务器轮询作业

如何在不同的服务器上运行Resqueworker但从一台Redis服务器轮询作业?由于resque使用redis来处理所有作业,我正在寻找一种将参数传递给工作类的方法,以便工作人员可以连接到其他redis服务器。我需要这个,因为一台服务器没有足够的资源来运行所有工作人员。 最佳答案 您只需配置Resque以连接到特定的Redis实例。默认情况下,Resque会尝试连接本地主机。只需按照here所述创建或修改config/resque.yml.它可能需要包含如下内容:production:my-one-and-only-redis-i

redis - Resque 作业停留在挂起状态

我的worker工作不正常。我的调度程序显然不工作。但是,当我手动将某些东西加入队列时,我可以看到它已成功添加,但它停留在待处理状态。当我说手动时,我的意思是这样的:Resque.enqueue(MyJob,)那些卡在挂起状态,而其他的,我的resque_scheduler上的那个根本没有排队。我试过重启worker还是不行。任何想法可能会发生什么?如果您需要更多信息/转储,请告诉我。谢谢。a)areusingresque_schedulerifyouareyoustartingit:是的,我正在使用它。我刚刚做了一个rakeresque:schedulerRAILS_ENV=prod