问题标签 [sucker-punch]
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-4 - 在自定义初始化程序中指定时,Rails ActiveJob 未使用正确的适配器
我正在尝试让 ActiveJob 在 config/initilizers/sucker_punch.rb 中使用带有以下代码的 Sucker-punch 适配器
有了这个代码,ActiveJob 仍然使用内联适配器。如果我将此代码移动到 config/application.rb 中,它就没有问题。
我可以从我的自定义初始化程序登录,所以我知道它正在被调用。
版本:
- 鲁迪 2.2.1
- 导轨 4.2.1
- 吸盘拳 1.4.0
有人可以帮忙吗。
谢谢!
ruby-on-rails-4 - Sucker_punch 错误或未正确运行后台作业
我有一个分类模型,我使用 after_create 回调来检查用户的关键字并发送电子邮件通知。
此电子邮件由后台作业使用 ActiveJobs 和 Sucker_punch 作为后台驱动程序发送。
我在日志中看到 3 个作业正在排队:
但我只收到了2封电子邮件...
我在日志中看到如下错误:
模型:
工作:
知道会发生什么吗?
先谢谢了
ruby-on-rails - 使用 connection_pool 块在 Rails 中进行吸盘测试,导致连接超时
提前感谢您的友好回复。
在工作中,我们使用Sucker Punch gem 作为 Rails 应用程序来发送电子邮件和其他我们想要异步执行的操作。
我们实现了几个没有问题的演员,甚至成功地为他们编写了一些测试,使用推荐的配置(sucker_punch/testing/inline
在规范中要求并使用截断作为数据库清理策略)。
一切都像魅力一样运作,直到我们决定实施的最后一个演员。它与其他没有什么不同,但是现在,在运行测试套件时,ActiveRecord::ConnectionTimeoutError
它被提升了。
我在互联网上搜索了解决方案,但没有任何结果。大多数答案(如this one)建议使用ActiverRecord::Base.connection_pool.with_connection
将块传递给它的方法。我们已经在这样做了。
我唯一能想到的是我们正在处理演员的错误,拯救异常,就像这样:
但是从源头来看,这不是问题,因为with_connection
可以确保发布它。
我将打开一个关于吸盘拳的问题,如果我有一些消息,我会更新这个问题。
有问题的版本可以等待,但这也让我想知道我们是否在生产中遇到同样的问题......
干杯,阿尔达娜。
编辑 gem 的作者告诉我,代码显然没有问题,并建议增加池大小。我将使用这种方法,如果错误仍然存在,我们将更改代码的某些部分以不使用吸盘冲头。
ruby-on-rails - Rails 和 Sucker_punch:在执行作业前 x 秒去抖动以控制执行率
在我的 Rails 3.2 项目中,我使用SuckerPunch在创建/更新模型时运行昂贵的后台任务。
用户可以在此模型上进行不同类型的交互。大多数时候,这些更新的间隔非常好,但是对于一些其他操作,如重新排序、批量更新等,这些 POST 请求可能会非常频繁地出现,这就是它压倒服务器的时候。
我的问题是,当第一次更新发生时启动后台作业的最优雅/最智能的策略是什么,但是等待10 秒以确保没有更多更新进入该模型(表,而不是一行),然后执行作业。如此有效地节流而无需排队。
我的sucker_punch
工人看起来像这样:
它从Marker
“映射”模型中调用,有时从控制器(对于update_all
案例)中调用,如下所示:
因此,运行后台作业的一个非常标准的设置。如何让工作等待或不安排,直到x seconds
我的模型(或表)上没有更新
如果有帮助,地图 has_many
标记会通过逻辑触发这项工作,以至于当地图更新的任何标记关联也可以。
ruby-on-rails - Rails Sucker Punch - 如何在不访问主页的情况下开始工作?
我试图弄清楚如何让 SuckerPunch 中的后台作业开始工作,而无需加载索引页面。
现在,我要做的是:
$ rails server #在 localhost:3000 启动服务器
然后我转到我的浏览器 URL 并输入 localhost:3000
这会触发我的 SuckerPunch 作业,它们开始运行。
我的 application_controller.rb
这就是我调用作业的地方。我在想也许我可以把它们放在另一个地方,这样我就可以实现我想要的。
在服务器启动时启动作业 - 而不是 http 请求。
ruby-on-rails - 将 Sucker Punch 与活动作业一起使用,有没有办法取消排队的作业?
所以我有
MyJob.perform_in(60, @user)
,它将在 60 秒内完成我的工作。
如果再次运行这行代码并在队列中替换它,我想取消此作业。
我没有运气研究。
ruby-on-rails - ActiveJob 队列适配器被忽略?
用户控制器.rb
我的工作.rb
配置/初始化程序/sucker_punch.rb
当我MyJob.perform_later
在 Rails 控制台中运行时,一切正常,记录器显示此消息Enqueued MyJob (Job ID: 6c857af8-a8ed-4bd0-918b-4296c4315727) to SuckerPunch(default)
但是,当我向我的user_controller发送 http 请求时,我在 3 秒之前没有收到任何响应(这让我认为作业不是异步执行的),并且记录器显示这个Enqueued MyJob (Job ID: e3d698eb-00d8-4849-9496-f01c53fc7217) to Inline(default)
它似乎在控制器中使用内联(默认?)适配器,它不是异步的。
ps:我puma
用作http服务器,并且使用不带ActiveJob的sucker_punch可以正常工作
ruby-on-rails - 有没有办法从 Rails 控制台列出队列中的 Sucker Punch 作业?
在 DelayedJob 中,我们可以Delayed::Job.all
在控制台上使用来列出队列中的所有作业。有没有办法使用 SuckerPunch gem 做同样的事情?
ruby-on-rails - Rails Mailchimp 后台作业未实现错误
因此,我想将在我的 rails 网站上注册的用户添加到邮件列表中。我已经安装了长臂猿 gem,并且成功地在一个独立的 ruby 文件中测试了我的 ruby 方法。但是,我在将其集成到我的应用程序中时遇到了问题。
我在 rails 日志中收到的错误是 ERROR -- : NotImplementedError (NotImplementedError)
这是我的方法,我试图从这篇博客文章中遵循:http: //aspiringwebdev.com/mailchimp-and-active-job-on-rails-4-adding-users-to-your-mailing-list-in-的背景/
我安装了一个后台工作人员(sucker_punch)。
我创建了一个名为 AddUserToRegistrationListJob 的作业
然后在我的 user.rb 文件中,我有
在我运行良好的 ruby 文件中,我将该方法的参数指定为
并在我像这样运行 ruby 文件时传入对象:
不清楚如何调整方法或参数以适应导轨。有什么建议么?