Python and Flask

  • פותח הנושא CL26
  • פורסם בתאריך

CL26

New member
Python and Flask

שלום לכולם,
אשמח לעזרה בבעיה.

אני מפתח תוסף למערכת ב flask framework.
חלק מפונציונליות המערכת היא לבצע פונקציה מסויימת כל X יח' זמן.
בכדי לממש זאת השתמשתי במודול של פייתון Threading, ובמחלקה Timer,
אשר בעזרתה ניתן כל x יח' זמן להטריג פונקציה, וכתוצאה מכך המערכת יוצרת ת'רד חדש המריץ את הפונקציה.
לדוגמה: Timer(25.0, buildTask).start()

כחלק מהפונקציה מתבצעת קריאת REST והת'רד קורס עם השגיאה הבאה: working outside of request context' .
מקצת חקירה באינטרנט הבנתי שבגלל שנפתח ת'רד חדש הוא לא מקבל את כל המשאבים וישנם מספר פתרונות כמו להגדיר את הcontext בצורה מפורשת בעזרת:
with app.app_context():

כמובן שניסיתי אך ללא הצלחה, שכן לא ברור לי איפה מגדירים את הcontext או איך אני משתמש בו או איך אני מעביר אותו לת'רד הבן.

יש לציין שאם מטריגים את הפונקציה לא בת'רד חדש (לדוגמה ע"י כפתור מהFRONT) הפעולה מצליחה להתבצע בהצלחה.


אם למישהו יש רעיון למה אפשר לעשות, או צורת דיבאג שתיתן יותר תובנות אני יותר מאשמח :)

Application context:
[URL]http://flask.pocoo.org/docs/0.12/appcontext/[/URL]
 
למעלה