Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/64.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 长时间运行的rake任务(包括rails环境)存在问题_Ruby On Rails_Ruby_Rake_Rabbitmq - Fatal编程技术网

Ruby on rails 长时间运行的rake任务(包括rails环境)存在问题

Ruby on rails 长时间运行的rake任务(包括rails环境)存在问题,ruby-on-rails,ruby,rake,rabbitmq,Ruby On Rails,Ruby,Rake,Rabbitmq,让我们看看我是否能解释这个问题 我使用RabbitMQ和一个名为。在某些模型上,比如评论,我们有一个after-create钩子,可以向Rabbit添加电子邮件事件。然后,该事件将通过作为rake任务运行的worker进行处理,该worker将加载相应的用户并发送电子邮件 此设置在90%的情况下都能正常工作,但工作进程偶尔会因ActiveRecord::RecordNotFound异常而崩溃。但是这是怎么可能的呢?我在创建对象之后对事件进行排队,并且事件需要额外的毫秒才能通过兔子层。可能是rak

让我们看看我是否能解释这个问题

我使用RabbitMQ和一个名为。在某些模型上,比如评论,我们有一个after-create钩子,可以向Rabbit添加电子邮件事件。然后,该事件将通过作为rake任务运行的worker进行处理,该worker将加载相应的用户并发送电子邮件


此设置在90%的情况下都能正常工作,但工作进程偶尔会因ActiveRecord::RecordNotFound异常而崩溃。但是这是怎么可能的呢?我在创建对象之后对事件进行排队,并且事件需要额外的毫秒才能通过兔子层。可能是rake任务的上下文导致了问题吗?在带有环境标志的rake中运行长时间运行的worker是一个错误的选择吗?救命啊

rake task with environment可能出现的唯一问题可能是代码的更改,这是相关的,因此当您部署更改的代码时,您需要重新启动rake task,这里有用的可能是unicorn使用script/runnerSure,我们在每次部署时都会重新启动…我猜抛出RecordNotFound异常的是用户,而不是新创建的模型注释。我猜您正在将id传递给rabbitmq以加载模型。您认为在这些崩溃实例中传递的id正确吗?是的,很可能是导致崩溃的注释。是的,这是正确的身份证。