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
a year ago
Full build logs please - https://bookmarklets.up.railway.app/log-downloader/
a year 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.
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.
a year 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?
a year 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
a year ago
you should not include the worker:
or flower:
parts of the procfile in the start commands
a year ago
for flower the start command should becelery -A vicentEcommerces flower --port=${PORT}--broker=${REDIS_URL} --basic_auth=${USERNAME}:${PASSWORD}
a year 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."
a year 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: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
celery -A vicentEcommerces flower --port=${PORT}--broker=${REDISURL} --basicauth=${USERNAME}:${PASSWORD}
a year ago
show your service variables tab
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
a year ago
im sorry but thats not at all what i asked for
a year ago
please read my message again
a year ago
it needs to have a domain, generate one
a year ago
click the domain
a year 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
a year ago
then you are good
a year ago
why do you think you need 3 workers when you have --concurrency=3
?
a year 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?"
a year 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."
a year ago
correct
a year 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
a year 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
a year ago
I wouldn't worry about these logs since they are from the old container
a year ago
please use the bookmarklet to send me logs
a year ago
follow the 3 steps on the page
a year ago
please read the page and follow the 3 steps listed there
a year ago
please send your start command
celery -A vicentEcommerces flower --port=${PORT}--broker=${REDISURL} --basicauth=${USERNAME}:${PASSWORD}
a year ago
looks you you have a typo, missing space
a year ago
it happens
a year ago
no problem!