在我的插件中,我需要类似这样的功能:每当向“/admin/plugins/delete_all_posts”发送 Ajax 请求时,我希望在服务器上安排一个 cron 作业,该作业每两分钟运行一次,直到任务完成。下面是代码和注释掉的行,它们只是我尝试过的,但在发送 Ajax 请求时会导致错误。
我已经在
=> lib\jobs\scheduled\delete_user_posts_job.rb
中为作业编写了代码
也尝试将其移动到
=> app\jobs\scheduled\delete_user_posts_job.rb
get '/admin/plugins/delete_all_posts' => proc { |_env|
uname = SiteSetting.delete_posts_for_username
userobj = User.find_by(username: uname)
# require_dependency File.expand_path("../app/jobs/scheduled/delete_user_posts_job.rb", __FILE__)
# ::Jobs::DeleteUserPostsJob.enqueue
# ::Jobs::Scheduled::DeleteUserPostsJob.enqueue
# 加载作业类以包含作业文件
# require_dependency Rails.root.join('plugins', 'delete-topic-ui', 'app', 'jobs', 'scheduled', 'delete_user_posts_job')
# 为指定用户启动删除帖子的 cron 作业
# ::Jobs::Scheduled::DeleteUserPostsJob.enqueue
# Jobs::Scheduled::DeleteAllPosts.enqueue
[200, {}, ['已安排删除用户帖子的 cron 作业']]
}