from flask import Flask
from flask_socketio import SocketIO
from celery import Celery
app = Flask(__name__, static_url_path="", static_folder='/')
app.config['SECRET_KEY'] = 'gjr39dkjn344_!67#'
app.config['CELERY_BROKER_URL'] = 'redis://127.0.0.1:6379/'
app.config['CELERY_RESULT_BACKEND'] = 'redis://127.0.0.1:6379/'
celery = Celery(app.name, broker=app.config['CELERY_BROKER_URL'])
celery.conf.update(app.config)
@celery.task()
async def my_background_task():
print("work")
return "sss"
@app.route("/")
async def main():
task = my_background_task.delay()
print(task)
return "sss"
app.run()
python3 main.py
redis-server
romantic_knuth
redis
RUNNING
1:C 21 Nov 2021 03:36:28.048 # oO0OoO0OoO0Oo Redis is starting oO0OoO0OoO0Oo
1:C 21 Nov 2021 03:36:28.048 # Redis version=6.2.6, bits=64, commit=00000000, modified=0, pid=1, just started
1:C 21 Nov 2021 03:36:28.048 # Warning: no config file specified, using the default config. In order to specify a config file use redis-server /path/to/redis.conf
1:M 21 Nov 2021 03:36:28.048 * monotonic clock: POSIX clock_gettime
1:M 21 Nov 2021 03:36:28.049 * Running mode=standalone, port=6379.
1:M 21 Nov 2021 03:36:28.049 # Server initialized
1:M 21 Nov 2021 03:36:28.049 # WARNING overcommit_memory is set to 0! Background save may fail under low memory condition. To fix this issue add 'vm.overcommit_memory = 1' to /etc/sysctl.conf and then reboot or run the command 'sysctl vm.overcommit_memory=1' for this to take effect.
1:M 21 Nov 2021 03:36:28.049 * Ready to accept connections
@celery.task()
async def my_background_task():
f = open("text.txt", "w")
f.write("fsdsdf")
return "sss"
@app.route("/")
async def main():
task = my_background_task.delay()
print(task)
return "sss"
6379/tcp
0.0.0.0:6379
tcp://127.0.0.1:6379/1
то получаю Traceback (most recent call last):
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\kombu\transport\__init__.py", line 57, in resolve_transport
transport = TRANSPORT_ALIASES[transport]
KeyError: 'tcp'
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\flask\app.py", line 2070, in wsgi_app
response = self.full_dispatch_request()
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\flask\app.py", line 1515, in full_dispatch_request
rv = self.handle_user_exception(e)
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\flask\app.py", line 1513, in full_dispatch_request
rv = self.dispatch_request()
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\flask\app.py", line 1499, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**req.view_args)
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\asgiref\sync.py", line 223, in __call__
return call_result.result()
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\concurrent\futures\_base.py", line 437, in result
return self.__get_result()
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\concurrent\futures\_base.py", line 389, in __get_result
raise self._exception
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\asgiref\sync.py", line 292, in main_wrap
result = await self.awaitable(*args, **kwargs)
File "F:\automatic\server.py", line 24, in main
task = my_background_task.delay()
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\celery\app\task.py", line 425, in delay
return self.apply_async(args, kwargs)
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\celery\app\task.py", line 575, in apply_async
return app.send_task(
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\celery\app\base.py", line 784, in send_task
with self.producer_or_acquire(producer) as P:
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\celery\app\base.py", line 919, in producer_or_acquire
producer, self.producer_pool.acquire, block=True,
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\celery\app\base.py", line 1303, in producer_pool
return self.amqp.producer_pool
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\celery\app\amqp.py", line 583, in producer_pool
self.app.connection_for_write()]
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\celery\app\base.py", line 816, in connection_for_write
return self._connection(url or self.conf.broker_write_url, **kwargs)
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\celery\app\base.py", line 867, in _connection
return self.amqp.Connection(
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\kombu\connection.py", line 182, in __init__
if not get_transport_cls(transport).can_parse_url:
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\kombu\transport\__init__.py", line 85, in get_transport_cls
_transport_cache[transport] = resolve_transport(transport)
File "c:\users\миханчик\appdata\local\programs\python\python38\lib\site-packages\kombu\transport\__init__.py", line 66, in resolve_transport
raise KeyError(f'No such transport: {transport}')
KeyError: 'No such transport: tcp'