This flag makes a worker not to restart only in case of a crash. To solve your problem, you could as well allow your process to restart and put it in indefinite sleep if server is not in recovery such it it will do nothing in your case.
Hmm so you can't have workers just "doing something once" and exit? I have to admit, i didn't follow bgworkers closely in the past, but could you give a short insight on why this is currently not possible?
Bgworkers are expected to run all the time, and will be restarted each time they exit cleanly with a status code 0. Note that they are *still* restarted immediately even if bgw_restart_time is set at BGW_NEVER_RESTART or to a certain value.
There are actually two ways you can use to have them perform a one-time task:
- put it in indefinite sleep after the task is accomplished
- set bgw_restart_time to BGW_NEVER_RESTART. and have the bgworler exit with non-0 status code.