这是我第一次异步处理作业我在我的应用程序中实现Sidekiq进行后台处理.我会将它用于提醒电子邮件和应用内通知.我很困惑我是否应该使用Active Job创建一个发送电子邮件的工作或者Sidekiq Worker来发送电子邮件.他们似乎做同样的事情,Rails 4.2 Active Job似乎很新......它是否取代了对Sidekiq工作者的需求?
以下是使用Active Job作业和Sidekiq Worker发送邮件代码的相同内容.我正在使用Whenever gem进行调度.
my_mailers.rb
class MyMailers < ActionMailer::Base
def some_mailer(r.user_id)
@user = User.find(r.user_id)
mailer_name = "ROUNDUP"
@email = @user.email
@subject ="subject text"
mail(to: @email,
subject: @subject,
template_path: '/notifer_mailers',
template_name: 'hourly_roundup.html',
)
end
end
Run Code Online (Sandbox Code Playgroud)
使用Sidekiq"Worker"
some_worker.rb
class SomeWorker
include Sidekiq::Worker
def perform()
@user = User.all
@reminders = @user.reminders.select(:user_id).uniq.newmade
@reminders.each do |r|
MyMailers.some_mailer(r.user_id).deliver_later
end
end
end
Run Code Online (Sandbox Code Playgroud)
使用活动作业"作业"
some_job.rb
class SomeJob < ActiveJob::Base
queue_as :mailer
def perform()
@user = User.all
@reminders = @user.reminders.select(:user_id).uniq.newmade
@reminders.each do |r| …Run Code Online (Sandbox Code Playgroud) 我想在我的Rails应用程序之外使用我自己的数据在Google地图上实现热图.为此,我需要根据我的数据为每个地图坐标(平铺)生成叠加图像.
我发现如何使用ImageMagick生成它,但我不想依赖于此,因为我计划在几个地方分发我的应用程序,所以我想只使用Ruby语言.
请注意,我只需要在一个小的透明方块上绘制不同颜色的点.
如何使用Mongrel使用Rails 3和Ruby 1.9.2创建Windows服务?
当我尝试在Firebird中更改来自不同所有者的表时,我收到此错误:
unsuccessful metadata update
MODIFY RDB$RELATION_FIELDS failed
no permission for control access to TABLE TAGS
Run Code Online (Sandbox Code Playgroud)
我已经为此用户授予了所有权限,还有REFERENCES权限,但我仍然收到此错误.
有谁知道如何解决这个问题?
我使用Firebird 1.5
谢谢
我想将设计限制为来自互联网的 api 上的 json 请求。它有什么作用?
# config/initializers/devise.rb
config.http_authenticatable_on_xhr = false
config.navigational_formats = ["*/", :html, :json]
Run Code Online (Sandbox Code Playgroud) 我有一个TWebBrowser放在一个启用了designMode的表单上.
浏览器Bellow我有一个关闭按钮,标题设置为'Clos&e'.
当我在WebBrowser中编辑文档的内容时,按下键E,调用按钮关闭.
它似乎正在处理TWebBrowser,就像其他不处理键和/或不接受字符的控件一样(例如TButton).
我怎么解决这个问题?
提前致谢.
是否有另一种方法可以在不使用Application.ProcessMessages的情况下加载MSHTML文档?
要将文档加载到IHTMLDocument中,我需要这样做:
while Doc.readyState <> 'complete' do
Application.ProcessMessages;
Run Code Online (Sandbox Code Playgroud)
我希望在加载过程中不处理所有的消息队列,因为我将改变我的应用程序流,换句话说,在完成加载之后应该处理的一些消息可以更早地处理,甚至在加载结束之前.
IHTMLDocument期望在加载过程中有一个特殊的消息代码?还是有另一种加载方式?