How does Delayed Job work in Ruby on Rails ?

前端 未结 2 1130
灰色年华
灰色年华 2021-02-06 06:22

I am new to this and is little confused about how Delayed Job works ?

I know it creates a table and puts the jobs in the table and then I need to run

r         


        
2条回答
  •  面向向阳花
    2021-02-06 06:45

    Does DJ script checks the table every minute and when the time matches job_at time, it runs that job ?

    yes. It checks the database every 5 seconds.

    How it is different than cron (whenever gem) if the script is just checking the table every min ?

    In the context of background jobs, they are not that different. Their main difference is how they usually run the jobs.

              DJ                  |            Crontab
     uses additional database     | you should either set up a rake task
     table but that's it. easier  | or a runner which can be called on the
     to code compared to crontab  | crontab
    ------------------------------|------------------------------------------
     requires you to run a worker | requires you to setup your cron which
     that will poll the database  | you can easily do using the whenever gem
    ------------------------------|------------------------------------------
     since this uses a table, it  | you have to setup some sort of logging so
     is easier to debug errors    | that you have an idea what caused the error
     when they happen             |
    ------------------------------|------------------------------------------
     the worker should always be  | as long as your crontab is set up properly,
     running to perform the job   | you should have no issues
    ------------------------------|------------------------------------------
     harder to setup recurring    | easy to setup recurring tasks
     tasks                        |
    ------------------------------|------------------------------------------
    

提交回复
热议问题