Как запускать функцию через регулярные промежутки времени?
У меня есть модель 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, я включил ссылки на документацию здесь. Его довольно просто настроить, и он позволит вам планировать ваши задачи в фоновом режиме.