Duplicate Services

charlie
PRO

a year ago

How do you duplicate services? I have a setup of a single Background Worker, I want to be able to duplicate this service so when I deploy it, my worker requests will go to the duplicate (i.e. backup) server so no jobs get interrupted due to deployment.

0 Replies

charlie
PRO

a year ago

Project ID: c61c1785-a8d8-43d0-9d8b-6bd1f69aa3bf


a year ago

You unfortunately can't duplicate services, although you might find the RAILWAY_DEPLOYMENT_OVERLAP_SECONDS [Railway provided variable]() useful


a year ago

also the RAILWAY_DEPLOYMENT_DRAINING_SECONDS so that your old deployment can know not to accept any new jobs


charlie
PRO

a year ago

Will the old deployment still run in progress jobs? Say I have a job that take 30 minutes


a year ago

that's completely up to you to design it that way, railway will send a sigterm signal and then your app should finish the jobs it already has and not accept any new jobs, then exit so the new deployment can take over


charlie
PRO

a year ago

So I understand, if I have Job X that runs for 30 minutes and at minute 10 I trigger a new deployment the old deployment will continue running Job X (but not accept any new jobs) while in parallel the new deployment will accept new jobs (even though Job X is still running on the old deployment)?


charlie
PRO

a year ago

(if that makes sense 😅 )


a year ago

by default, that's probably not how it's going to work, you would be responsible for correctly configuring those two variables and your worker configuration to behave as mentioned


charlie
PRO

a year ago

Which 2 variables are you referring to?


a year ago

give this thread another slow read over please


charlie
PRO

a year ago

(I don't have the context you have which is why I'm trying to understand how Railway is working under the hood)


a year ago

we have mentioned the two variables and have even linked to the docs page that explains them


charlie
PRO

a year ago

Ok the RAILWAY_DEPLOYMENT_OVERLAP_SECONDS and RAILWAY_DEPLOYMENT_DRAINING_SECONDS (I've not used these before, I thought you were referring to length of the jobs)


charlie
PRO

a year ago

I think I will have to play around with Railway in a test environment to test this use case as not super clear how this is working and feels a bit black boxy, appreciate your help and sending me in the right direction wrt. the environment variables, thanks!


a year ago

no problem!