Mohssen A Mohssen نشر 16 ديسمبر 2021 أرسل تقرير نشر 16 ديسمبر 2021 لدي مشروع فلاسك Flask وأريد أن أقوم بتنفيذ دالة معينة في وقت محدد عندما يقوم المستخدم بالدخول إلى مسار ما، على سبيل المثال: import time from flask import Flask, request, render_template app = Flask(__name__) def date_time(): print("Working at: ", time.strftime("%A, %d. %B %Y %I:%M:%S %p")) @app.route('/', methods=['POST', 'GET']) def index(): # Execute date_time() after 1 hour return render_template("home.html") if __name__ == '__main__': app.run(debug=True) أريد تنفيذ الدالة date_time كل ساعة من لحظة دخول المستخدم إلى المسار / ، حاولت أن أستخدم corn ولكن لم أستطع أن أقوم بذلك من خلال كود Python. هل توجد طريقة للقيام بهذا الأمر في فلاسك Flask؟ 1 اقتباس
1 سامح أشرف نشر 16 ديسمبر 2021 أرسل تقرير نشر 16 ديسمبر 2021 يمكنك القيام بهذا الأمر من خلال إستخدام التابع BackgroundScheduler الموجود في الحزمة APScheduler والتي تسمح لك بتنفيذ دالة معينة كل فترة من الزمن مثل ما يقوم به corn بالضبط. أولًا عليك تثبيت الحزمة من خلال الأمر التالي: pip install APScheduler ثم يمكنك أن تقوم بإستخدامها على النحو التالي: import time import atexit from flask import Flask, request, render_template from apscheduler.schedulers.background import BackgroundScheduler app = Flask(__name__) scheduler = BackgroundScheduler() def date_time(): print("Working at: ", time.strftime("%A, %d. %B %Y %I:%M:%S %p")) @app.route('/', methods=['POST', 'GET']) def index(): scheduler.add_job(func=date_time, trigger="interval", seconds=3600) scheduler.start() return render_template("home.html") if __name__ == '__main__': app.run(debug=True) كما يمكنك أن تقوم بإيقاف كل العمليات التي تعمل في الخلفية من خلال إستخدام التابع register: atexit.register(lambda: scheduler.shutdown()) ويمكنك أن تضيف الكود السابق في مسار مختلف ليتم إيقاف العمليات عند زيارته: @app.route('/shutdown') def shutdown(): atexit.register(lambda: scheduler.shutdown()) return "closed" 1 اقتباس
السؤال
Mohssen A Mohssen
لدي مشروع فلاسك Flask وأريد أن أقوم بتنفيذ دالة معينة في وقت محدد عندما يقوم المستخدم بالدخول إلى مسار ما، على سبيل المثال:
أريد تنفيذ الدالة date_time كل ساعة من لحظة دخول المستخدم إلى المسار / ، حاولت أن أستخدم corn ولكن لم أستطع أن أقوم بذلك من خلال كود Python.
هل توجد طريقة للقيام بهذا الأمر في فلاسك Flask؟
1 جواب على هذا السؤال
Recommended Posts
انضم إلى النقاش
يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.