#python #flask #dramatiq
Вопрос:
следуя этому руководству https://github.com/Bogdanp/dramatiq Я создал простой скрипт на python, чтобы проверить, работает он или нет. Я выполнил несколько простых операций следующим образом
Это действительно сработало отлично.
пожалуйста, обратите внимание, что есть два терминала, один для запуска скрипта и один для рабочего, В скрипте, приведенном ниже, инструкции печати в функции count_word выполняются во втором терминале
working example
import pandas as pd
import dramatiq
import requests
import sys
@dramatiq.actor
def count_words(url):
response = requests.get(url)
count = len(response.text.split(" "))
data = {'Name': ['Tom', 'nick', 'krish', 'jack'],
'Age': [20, 21, 19, 18]}
df = pd.DataFrame(data)
df.to_csv(r'C:Users91956Desktopasdf.csv')
print(df)
print(f"There are {count} words at {url!r}.")
if __name__ == "__main__":
count_words.send("http://whatsapp.com")
поэтому я пошел дальше и попытался сделать то же самое в своем приложении flask, я ожидал, что инструкция печати в process_data будет напечатана в рабочем терминале, но она вообще не печатается,
только «привет, я на работе» печатается в терминале, в котором я запускаю приложение flask
@app.route('/work')
def work():
print("hi i am in work")
@dramatiq.actor
def process_data():
print('hi i am in process_data')
process_data.send()
return "hello"
Я хочу запустить функцию process_data в фоновом режиме,
Я новичок и многого не знаю, возможно ли достичь этого так, как я делаю?
поэтому я хочу знать, как я могу запустить определенную функцию в фоновом режиме в flask?