Как запустить функцию в фоновом режиме после запуска моего django веб-сайта? - PullRequest
2 голосов
/ 12 апреля 2020

Я написал алгоритм. И когда я использую python manage.py runserver, мой сайт будет работать на локальном сервере.

Теперь я хочу запустить свой алгоритм после python manage.py runserver.

Другими словами, когда я запускаю сайт django, я надеюсь, что алгоритм будет работать в фоновом режиме, пока не будет завершен , И я хочу знать, если алгоритм все еще работает или алгоритм завершен.

Что мне делать?

Спасибо.

Ответы [ 2 ]

0 голосов
/ 12 апреля 2020

Привет, возможно, вы захотите оформить заказ Django Celery Beat , чтобы позже вы могли просто определить некоторую задачу в вашем Django приложении и периодически выполнять вашу функцию

from celery import Celery
from celery.schedules import crontab

app = Celery()

@app.on_after_configure.connect
def setup_periodic_tasks(sender, **kwargs):
    # Calls test('hello') every 10 seconds.
    sender.add_periodic_task(10.0, test.s('hello'), name='add every 10')

    # Calls test('world') every 30 seconds
    sender.add_periodic_task(30.0, test.s('world'), expires=10)

    # Executes every Monday morning at 7:30 a.m.
    sender.add_periodic_task(
        crontab(hour=7, minute=30, day_of_week=1),
        test.s('Happy Mondays!'),
    )

@app.task
def test(arg):
    print(arg)from celery import Celery
0 голосов
/ 12 апреля 2020

примерно так:

def function_that_downloads(my_args):
    # do some he

re

def __init__(self, function_that_downloads):
        threading.Thread.__init__(self)
        self.runnable = function_that_downloads
        self.daemon = True

    def run(self):
        self.runnable()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...