Как запускать функцию через регулярные промежутки времени?

У меня есть модель DashboardData. Я получаю некоторую информацию из этой формы и в соответствии с полученными ответами запускаю функцию, используя ответы формы в качестве параметров.

Я хочу запускать функцию типа functions.myFunction(n_user, n_password, n_url, n_port, db_password) со значениями пользователя DashboardData каждые 15 минут. Как я могу запустить функцию с параметрами

Как я могу повторно запускать его через регулярные промежутки времени?

Это моя модель формы:

class DashboardData(models.Model):
    user = models.ForeignKey(UserProfile, on_delete=models.CASCADE, null=True) # request.user
    n_username = models.CharField(max_length=250)
    n_password = models.CharField(max_length=250)
    n_url = models.CharField(max_length=250)
    n_port = models.IntegerField()
    period = models.CharField(max_length=250)
    db_password = models.CharField(max_length=250, null=True)

А это моя функция:

class myFunction():
    def __init__(self, n_user, n_password, n_url, n_port, db_password):
        self.zaman = datetime.now().strftime("%Y-%m-%d")
        self.location = a_url
        self.static_fields = {}
        self.index_name = "vulns-" + self.zaman
        self.download_all(n_user, n_password, n_url, n_port, db_password)
        self.send_it()

Я пытался использовать приложение apscheduler, но не могу его запустить.

например

from tkinter import *
import time
root = Tk()
root.title("DIGITAL CLOCK")
root.geometry("550x100")
root.config(bg="black")


def time_update():
    label_base.config(text=time.strftime("%I:%m:%S %p"))
    label_base.after(1000, time_update)


label_base = Label(root, text="123", font=("Axlongscreen_Font-Light", 
50), bg="black", fg="white", pady=20)
label_base.pack()
time_update()
mainloop()

Если вы создаете две или более функции и хотите, чтобы одна функция переходила в другую, то присваивая переменную, в следующей строке добавьте .после конца имени вашей переменной, затем внутри скобки укажите длительность интервала в миллисекундах и после запятой укажите имя функции, которую вы хотите запустить. Я дал text.after(milisecond then time_update) потому что time_update где я хочу вернуться после 1000 милисекунд. если вы хотите перепрыгнуть другую функцию, то вы можете дать другое имя функции

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

Вернуться на верх