Duplicate Services
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.
Solution:Jump to solution
You unfortunately can't duplicate services, although you might find the
RAILWAY_DEPLOYMENT_OVERLAP_SECONDS
Railway provided variable useful14 Replies
Project ID:
c61c1785-a8d8-43d0-9d8b-6bd1f69aa3bf
Project ID:
c61c1785-a8d8-43d0-9d8b-6bd1f69aa3bf
Solution
You unfortunately can't duplicate services, although you might find the
RAILWAY_DEPLOYMENT_OVERLAP_SECONDS
Railway provided variable usefulalso the
RAILWAY_DEPLOYMENT_DRAINING_SECONDS
so that your old deployment can know not to accept any new jobsWill the old deployment still run in progress jobs? Say I have a job that take 30 minutes
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
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)?
(if that makes sense 😅 )
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
Which 2 variables are you referring to?
give this thread another slow read over please
(I don't have the context you have which is why I'm trying to understand how Railway is working under the hood)
we have mentioned the two variables and have even linked to the docs page that explains them
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)
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!no problem!