help with env config in railway

cromos92
PRO

a year ago

hi i try to deploy mi app in railway i use

DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': os.getenv('PGDATABASE'),
'USER': os.getenv('PGUSER'),
'PASSWORD': os.getenv('PGPASSWORD'),
'HOST': os.getenv('PGHOST'),
'PORT': os.getenv('PGPORT', '5432'),
}
}
and i create 9 Service Variables but i doesnt work

0 Replies


cromos92
PRO

a year ago

sorry Brody i can fix it but how i can configure flower


a year ago

I don't know what flower is sorry, I'll need more context


cromos92
PRO

a year ago

I'm asking about the Flower Python library in my Django project. It uses port 5555 and has this configuration in the Procfile that I use in my project:


cromos92
PRO

a year ago

web: gunicorn vicentEcommerces.wsgi:application --bind 0.0.0.0:$PORT --workers 6
worker: celery -A vicentEcommerces worker --loglevel=info --concurrency=6
flower: celery -A vicentEcommerces flower --port=5555 --broker=${REDISURL} --basicauth=username:password


cromos92
PRO

a year ago

Sure! Here is the translated text:

In my project, I am using Celery and Redis, which are already configured and working. However, I want to add more workers because one is not enough. To visualize them, I was planning to use Flower, but I'm open to any recommendations you might have.


cromos92
PRO

a year ago

😫


a year ago

ah gotcha.

you have 3 processes in that Procfile, railway does it differently than heroku.

for each process in your Procfile you will need a separate railway service.

each of these 3 services will deploy from the same GitHub repo.

each of these 3 services will have the same variables.

the only difference between these 3 railway services would be the start command you set in their service settings.

on one service you will set the web command, another service the worker command, and the last service the flower command.

all of these services including any databases you may have should all be deployed into the same railway project.


cromos92
PRO

a year ago

Would I then have to create a new branch for each Procfile?


a year ago

nope, you dont need a procfile with that method, please read my message again


cromos92
PRO

a year ago

sorry i am from chile and my english its so so i wil try that but you said the only difference between these 3 railway services would be the start command you set in their service settings.
so Procfile its not needed?


a year ago

feel free to translate to your language!

yes a procfile is not needed with the steps i went over


cromos92
PRO

a year ago

ok Brody i wil try know that


cromos92
PRO

a year ago

I do that but the 3 apps crashed


cromos92
PRO

a year ago

in worker I put in Custom Start Command worker: celery -A vicentEcommerces worker --loglevel=info --concurrency=3
in flower app I put in custom start command i put
flower: celery -A vicentEcommerces flower


a year ago

you should not include the worker: or flower: parts of the procfile in the start commands


cromos92
PRO

a year ago

its work thx know all service are running


cromos92
PRO

a year ago

the last thing when i try www.myurl:5555 flower doesnt show anything }


a year ago

for flower the start command should becelery -A vicentEcommerces flower --port=${PORT}--broker=${REDIS_URL} --basic_auth=${USERNAME}:${PASSWORD}


cromos92
PRO

a year ago

usport its 5555?


a year ago

it needs to listen on the auto assigned $PORT variable


cromos92
PRO

a year ago

"I created the variables password, user, and port in the environment variables, but an error occurs."


a year ago

have you updated the start command with the command i gave your?


cromos92
PRO

a year ago

yes i do that i work and the logs
Starting Container

[I 240612 01:26:46 command:168] Visit me at http://0.0.0.0:5555

[I 240612 01:26:46 command:176] Broker: redis://default:**@[viaduct.proxy.rlwy.net:45](viaduct.proxy.rlwy.net:45)810//

 'allMarketsPlaces.tasks.add',

[I 240612 01:26:46 mixins:228] Connected to redis://default:**@viaduct.proxy.rlwy.net:45


a year ago

please send the start command you currently have


cromos92
PRO

a year ago

celery -A vicentEcommerces flower --port=${PORT}--broker=${REDISURL} --basicauth=${USERNAME}:${PASSWORD}


cromos92
PRO

a year ago

and it doesnt have public network


a year ago

show your service variables tab


cromos92
PRO

a year ago

PASSWORD=Robotito12.
PORT=5555
REDISPRIVATEURL=${{Redis.REDISPRIVATEURL}}
REDISURL=${{Redis.REDISURL}}
USERNAME=admin


a year ago

not sure why you would share your username as password, please make sure to change them


a year ago

send a screenshot of the flower service public domain


cromos92
PRO

a year ago

1250263309802934300


a year ago

im sorry but thats not at all what i asked for


cromos92
PRO

a year ago

1250263478313160700


a year ago

please read my message again


cromos92
PRO

a year ago

1250263642251727000


a year ago

it needs to have a domain, generate one


cromos92
PRO

a year ago

😦


cromos92
PRO

a year ago

ok i generated one and then ?


cromos92
PRO

a year ago

its ok and then


a year ago

click the domain


cromos92
PRO

a year ago

ooo thanks its work finally


cromos92
PRO

a year ago

the last question its only have 1 worker how i can put 3 workers


a year ago

you already have --concurrency=3 in your start command for the worker


cromos92
PRO

a year ago

yes i have in star command worker this: celery -A vicentEcommerces worker --loglevel=info --concurrency=3


a year ago

then you are good


cromos92
PRO

a year ago

and the flower


cromos92
PRO

a year ago

1250265621443383300


a year ago

why do you think you need 3 workers when you have --concurrency=3?


cromos92
PRO

a year ago

mm whats its the diference with concurrency 3 and 3 workers


cromos92
PRO

a year ago

??


a year ago

--concurrency=3 just runs 3 workers under the hood for you


cromos92
PRO

a year ago

It happens that on localhost, when I test the workers in Flower, I see 3 worker entries. I understand that, regardless of showing one worker, there are 3 as you mentioned. But how can I make all 3 worker entries visible, or do I need to create another repo with workers and name them?"


a year ago

it is unnecessary, i do not see a point in running 2 more separate workers


cromos92
PRO

a year ago

ok Thanks Brody for all but the last thing


cromos92
PRO

a year ago

Aquí tienes la traducción al inglés de tu mensaje:

"So when I use --concurrency=3, the worker will be able to handle up to 3 tasks simultaneously."


a year ago

correct


cromos92
PRO

a year ago

okokok Thank u


a year ago

no problem!


cromos92
PRO

a year ago

Brody the task worker logs said
2024-06-12 00:59:34,920: INFO/MainProcess] Events of group {task} enabled by remote.

[2024-06-12 02:02:19,173: INFO/MainProcess] Task allMarketsPlaces.paris.crearStockProducto[720e7060-1a69-4579-8986-73ca3f42c43f] received

django.db.utils.OperationalError: connection to server on socket "/var/run/postgresql/.s.PGSQL.5432" failed: No such file or directory


a year ago

have you made sure to set the needed postgres variables on that service?


cromos92
PRO

a year ago

nop i put that know and redeploy


cromos92
PRO

a year ago

its work srry for the time


cromos92
PRO

a year ago

its works but i have a [problem when i redeploy flower


cromos92
PRO

a year ago

the commands celery -A vicentEcommerces flower --port=${PORT}--broker=${REDISURL} --basicauth=${USERNAME}:${PASSWORD}
and de logs are rv = self.invoke(ctx)

^^^^^^^

return _process_result(sub_ctx.command.invoke(sub_ctx))

^^^^^^^^^^^^^

return ctx.invoke(self.callback, **ctx.params)



return __callback(*args, **kwargs)

^^^^^^^^^^^^^^^^^

^^^^^^^^^^

File "/opt/venv/lib/python3.11/site-packages/click/decorators.py", line 33, in new_func

return f(get_current_context(), *args, **kwargs)

File "/opt/venv/lib/python3.11/site-packages/flower/command.py", line 42, in flower

applyoptions(sys.argv[0], tornadoargv)

File "/opt/venv/lib/python3.11/site-packages/flower/command.py", line 86, in apply_options

parse_command_line([prog_name] + argv)

File "/opt/venv/lib/python3.11/site-packages/tornado/options.py", line 722, in parsecommandline

return options.parsecommandline(args, final=final)

option.parse(value)

File "/opt/venv/lib/python3.11/site-packages/tornado/options.py", line 588, in parse

self._value = _parse(value)

container event container died


a year ago

I wouldn't worry about these logs since they are from the old container


cromos92
PRO

a year ago

a ok but

1250568702492147700


a year ago

please use the bookmarklet to send me logs


cromos92
PRO

a year ago

how i do that


a year ago

follow the 3 steps on the page


cromos92
PRO

a year ago

?


a year ago

please read the page and follow the 3 steps listed there


cromos92
PRO

a year ago


cromos92
PRO

a year ago

k


a year ago

please send your start command


cromos92
PRO

a year ago

celery -A vicentEcommerces flower --port=${PORT}--broker=${REDISURL} --basicauth=${USERNAME}:${PASSWORD}


a year ago

looks you you have a typo, missing space

1250575046674747400


cromos92
PRO

a year ago

i cant belive that


a year ago

it happens


cromos92
PRO

a year ago

I redeploy and see the logs


cromos92
PRO

a year ago

thx u


a year ago

no problem!