2 years 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
82 Replies
2 years ago
Full build logs please - https://bookmarklets.up.railway.app/log-downloader/
2 years ago
I don't know what flower is sorry, I'll need more context
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:
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
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.
2 years 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.
2 years ago
nope, you dont need a procfile with that method, please read my message again
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?
2 years ago
feel free to translate to your language!
yes a procfile is not needed with the steps i went over
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
2 years ago
you should not include the worker: or flower: parts of the procfile in the start commands
2 years ago
for flower the start command should becelery -A vicentEcommerces flower --port=${PORT}--broker=${REDIS_URL} --basic_auth=${USERNAME}:${PASSWORD}
2 years ago
it needs to listen on the auto assigned $PORT variable
"I created the variables password, user, and port in the environment variables, but an error occurs."
2 years ago
have you updated the start command with the command i gave your?
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:45810//
'allMarketsPlaces.tasks.add',[I 240612 01:26:46 mixins:228] Connected to redis://default:**@viaduct.proxy.rlwy.net:45
2 years ago
please send the start command you currently have
celery -A vicentEcommerces flower --port=${PORT}--broker=${REDISURL} --basicauth=${USERNAME}:${PASSWORD}
2 years ago
show your service variables tab
PASSWORD=Robotito12.
PORT=5555
REDISPRIVATEURL=${{Redis.REDISPRIVATEURL}}
REDISURL=${{Redis.REDISURL}}
USERNAME=admin
2 years ago
not sure why you would share your username as password, please make sure to change them
2 years ago
send a screenshot of the flower service public domain
2 years ago
im sorry but thats not at all what i asked for
2 years ago
please read my message again
2 years ago
it needs to have a domain, generate one
2 years ago
click the domain
2 years ago
you already have --concurrency=3 in your start command for the worker
yes i have in star command worker this: celery -A vicentEcommerces worker --loglevel=info --concurrency=3
2 years ago
then you are good
2 years ago
why do you think you need 3 workers when you have --concurrency=3?
2 years ago
--concurrency=3 just runs 3 workers under the hood for you
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?"
2 years ago
it is unnecessary, i do not see a point in running 2 more separate workers
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."
2 years ago
correct
2 years ago
no problem!
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
2 years ago
have you made sure to set the needed postgres variables on that service?
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
2 years ago
I wouldn't worry about these logs since they are from the old container
2 years ago
please use the bookmarklet to send me logs
2 years ago
follow the 3 steps on the page
2 years ago
please read the page and follow the 3 steps listed there
2 years ago
please send your start command
celery -A vicentEcommerces flower --port=${PORT}--broker=${REDISURL} --basicauth=${USERNAME}:${PASSWORD}
2 years ago
looks you you have a typo, missing space

2 years ago
it happens
2 years ago
no problem!




