我需要在用户提交请求后在后台进行一些处理。作业完成后,我想向用户显示您的工作已完成的消息。
到目前为止我有这个
LIB /作业/ custom_job.rb
firebaseRef.child("products").on('value', (snapshot) => {
var products = snapshot.val();
this.setState({
productList: products
})
});
custom.js
class CustomJob
def perform
sleep 1 # Here will do the background processing.
ActionView::Base.new('app/views', {}, ActionController::Base.new).render(file: 'teacher/courses/custom')
end
end
控制器
$(document).ready(function() {
alert("Your job is done.");
});
工人开始工作并完成它没有错误。
class Teacher::CoursesController < ApplicationController
def index
Delayed::Job.enqueue(CustomJob.new)
@courses = current_teacher.courses.all
end
end
提前致谢。
答案 0 :(得分:0)
您需要在前端使用某种轮询界面,在后端的对象上查找完整的事件,或使用某种服务,如pusher.com。
我们经常这样做,这是我们发现的更好的模式之一,它允许用户重新加载/离开页面并返回仍然可用的通知,如果它仍在等待完成。