[英]Send data from sidekiq to rails controller without saving in database
[英]Saving data to database after Sidekiq's schedule
我可能對Sidekiq的概念有誤解 。 我的理解是,您可以創建一個后台作業,讓它等待x分鍾,然后再保存到數據庫中 。 我到目前為止是否正確(保存到數據庫)?
我已經得到了sidekiq 來展示我的工作,但是x分鍾后,我不知道發生了什么。
在Sidekiq之前 ,這是我在提交帖子后將其保存到數據庫的方式:
support_controller.rb:
def create
@user = current_user
@support = @user.supports.build(support_params)
if @support.save
flash[:success] = 'Yes'
else
flash[:alert] = 'No'
end
...
private
def support_params
params.require(:support).permit(:foo)
end
end
與Sidekiq: 這篇文章
使用Sidekiq的原因是我需要在x天后刪除帖子。
如果您使用Sidekiq的唯一原因是刪除x
天后的帖子,即使不使用Sidekiq,也可以實現此目的:
x
天/小時/分鍾運行一次此rake任務。 要在部署/紅寶石內部創建cron作業,可以像任何時候一樣使用gem。 因此,您的瑞克任務將類似於:
namespace :posts do
desc 'Clean up posts'
task clean: :environment do
# with callbacks (method 1)
Post.where('delete_at >= ?', DateTime.now).each do |post|
post.destroy
end
# without callbacks (method 2)
Post.delete_all('delete_at >= ?', DateTime.now)
do
end
而不僅僅是在任何時候創建cron作業:
# just run the rake task every x days at x:xx
every 1.day, at: '1:00 am' do
rake "posts:clean"
end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.