דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. תכנות
  3. מודול php שרץ כל הזמן

מודול php שרץ כל הזמן

מתוזמן נעוץ נעול הועבר תכנות
16 פוסטים 3 כותבים 1.5k צפיות 3 עוקבים
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
תגובה
  • תגובה כנושא
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • chagoldC מנותק
    chagoldC מנותק
    chagold
    כתב ב נערך לאחרונה על ידי
    #1

    איך עושים מודול php שרץ בצד השרת כל הזמן (לדוגמא כשהוא מזהה שינוי בDB הוא יעשה משהו)?
    תודה.

    clickoneC תגובה 1 תגובה אחרונה
    0
    • dovidD מנותק
      dovidD מנותק
      dovid
      ניהול
      כתב ב נערך לאחרונה על ידי
      #2

      בדרך כלל לא עושים כאלו פעולות באפליקציית הווב, אלא ברכיב ישיר על מערכת ההפעלה.
      במערכות לינוקס יש מנגנון מתזמן משימות ששמו cron, והוא נגיש בד"כ גם באירוח שיתופי דרך איזו שהיא הגדרה מתאימה בפאנל.
      אבל מחיפוש באינטרנט אני רואה שניתן לשלוט על המנגנון מתוך הקוד PHP של האתר, אני לא מספיק מבין בזה בשביל לדעת פרטים מדוייקים,
      ראה פה מאמר ארוך:
      https://code.tutsplus.com/tutorials/managing-cron-jobs-with-php--net-19428
      הגעתי אליו מתשובות הסטאק הללו:
      https://stackoverflow.com/questions/35044216/how-to-run-a-background-task-in-php-web-application
      https://stackoverflow.com/questions/120228/php-running-scheduled-jobs-cron-jobs

      הגעתי אליהם מחיפוש גוגל: php background task

      הסיבה שזה לא מומלץ לעשות זאת מתוך קוד הPHP בצורה פשוטה של לולאה זה בגלל שPHP בנוי לעובד כתגובה לבקשות כאשר כל בקשה זה טריד חולף בן שניה מקסימום. היחס של שרת הווב לטרידים שהם סה"כ אוסף של בקשות מקליינטים, הינו "מזלזל": הוא יכול לסגור אותם אם נראה לו ש"הם עברו את הגבול" או בכלל כי עבר פסק זמן גדול בהם לא היו בקשות אז הוא מכבה הכל.

      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
      תגובה 1 תגובה אחרונה
      2
      • chagoldC chagold

        איך עושים מודול php שרץ בצד השרת כל הזמן (לדוגמא כשהוא מזהה שינוי בDB הוא יעשה משהו)?
        תודה.

        clickoneC מנותק
        clickoneC מנותק
        clickone
        כתב ב נערך לאחרונה על ידי
        #3

        @chagold רץ כל X זמן? מתעורר באירוע כלשהו?
        אם זה כאירוע מתעורר, עדיף שזה יהיה בקוד ולא כcron.
        או שתעשה טריגר בDB שמעורר את האירוע

        אין טסט כמו פרודקשן.

        המייל שלי urivpn@gmail.com

        תגובה 1 תגובה אחרונה
        2
        • chagoldC מנותק
          chagoldC מנותק
          chagold
          כתב ב נערך לאחרונה על ידי
          #4

          אירוע מתעורר.
          אצטרך למצוא את הצורה/טריגר להריץ מהד"ב php (נ.ב. מדובר בpostgressql).

          תודה רבה

          clickoneC 2 תגובות תגובה אחרונה
          0
          • chagoldC chagold

            אירוע מתעורר.
            אצטרך למצוא את הצורה/טריגר להריץ מהד"ב php (נ.ב. מדובר בpostgressql).

            תודה רבה

            clickoneC מנותק
            clickoneC מנותק
            clickone
            כתב ב נערך לאחרונה על ידי
            #5

            @chagold זה MVC?

            אין טסט כמו פרודקשן.

            המייל שלי urivpn@gmail.com

            תגובה 1 תגובה אחרונה
            0
            • chagoldC מנותק
              chagoldC מנותק
              chagold
              כתב ב נערך לאחרונה על ידי chagold
              #6

              הוא לא צריך לרוץ בכלל עבור התצוגה. רק ברקע.

              clickoneC תגובה 1 תגובה אחרונה
              0
              • chagoldC chagold

                אירוע מתעורר.
                אצטרך למצוא את הצורה/טריגר להריץ מהד"ב php (נ.ב. מדובר בpostgressql).

                תודה רבה

                clickoneC מנותק
                clickoneC מנותק
                clickone
                כתב ב נערך לאחרונה על ידי
                #7

                @chagold
                טריגרים בpostgresql
                https://www.postgresql.org/docs/9.1/static/sql-createtrigger.html

                אין טסט כמו פרודקשן.

                המייל שלי urivpn@gmail.com

                תגובה 1 תגובה אחרונה
                2
                • chagoldC chagold

                  הוא לא צריך לרוץ בכלל עבור התצוגה. רק ברקע.

                  clickoneC מנותק
                  clickoneC מנותק
                  clickone
                  כתב ב נערך לאחרונה על ידי clickone
                  #8

                  @chagold ברור.
                  וכאן בדיוק נמצא המודל.
                  במודל אתה שם את הקוד ששאתה רוצה אחרי עידכון
                  וזה יהיה מכל מקום שיש בו עידכון - שמשתמש במודל.
                  ללא קשר כלל לתצוגה.

                  לדוגמא: אם מימשת API שתוכנות חיצוניות יכולות להתממשק אליך, אם תשתמש במודל במקום כתיבה ישירות לDB, אז זה גם יעורר את האירוע

                  וגם תמיד יש לך אפשרות של טריגרים...

                  אין טסט כמו פרודקשן.

                  המייל שלי urivpn@gmail.com

                  תגובה 1 תגובה אחרונה
                  1
                  • chagoldC מנותק
                    chagoldC מנותק
                    chagold
                    כתב ב נערך לאחרונה על ידי
                    #9

                    תודה רבה.

                    תגובה 1 תגובה אחרונה
                    0
                    • dovidD מנותק
                      dovidD מנותק
                      dovid
                      ניהול
                      כתב ב נערך לאחרונה על ידי
                      #10

                      אם גורם העדכון הוא רק ממשק הווב, אז ברור שהוא זה שצריך להפעיל אותו.
                      אם הפעולה לוקחת זמן ממושך, אז כמו שכתבתי עדיף שהphp יפעיל משהו חיצוני בסגנון של exec.
                      אך אם יש גורמים אחרים מעדכנים אז אי אפשר לבנות על הPHP. ואז אכן הרעיון של הטריגרים שאמר @clickone הוא גם נכון (אגב לpostgres יש cron משלו בשם pgcron אבל כפי ש @clickone הסיק זה אכן לא נוגע למקרה שלך בגלל שזה לא תזמון אלא תגובה לשינוי).

                      • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                      • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                      clickoneC תגובה 1 תגובה אחרונה
                      2
                      • dovidD dovid

                        אם גורם העדכון הוא רק ממשק הווב, אז ברור שהוא זה שצריך להפעיל אותו.
                        אם הפעולה לוקחת זמן ממושך, אז כמו שכתבתי עדיף שהphp יפעיל משהו חיצוני בסגנון של exec.
                        אך אם יש גורמים אחרים מעדכנים אז אי אפשר לבנות על הPHP. ואז אכן הרעיון של הטריגרים שאמר @clickone הוא גם נכון (אגב לpostgres יש cron משלו בשם pgcron אבל כפי ש @clickone הסיק זה אכן לא נוגע למקרה שלך בגלל שזה לא תזמון אלא תגובה לשינוי).

                        clickoneC מנותק
                        clickoneC מנותק
                        clickone
                        כתב ב נערך לאחרונה על ידי
                        #11

                        @dlt @chagold
                        אגב יש מקרה מעניין במשרד החינוך, בתוכנה "תלמוד" של הרישום אברכים ותלמידים, שכמות האברכים לקוד מסויים מתעדכן אחת לכמה שעות ולא מיידי.
                        תודו שזה מוזר. אבל מה יש לנו להתלונן... הם משרדי ממשלה 😮

                        אין טסט כמו פרודקשן.

                        המייל שלי urivpn@gmail.com

                        תגובה 1 תגובה אחרונה
                        1
                        • chagoldC מנותק
                          chagoldC מנותק
                          chagold
                          כתב ב נערך לאחרונה על ידי
                          #12

                          @dlt אמר במודול php שרץ כל הזמן:

                          אם גורם העדכון הוא רק ממשק הווב, אז ברור שהוא זה שצריך להפעיל אותו.
                          אם הפעולה לוקחת זמן ממושך, אז כמו שכתבתי עדיף שהphp יפעיל משהו חיצוני בסגנון של exec.
                          אך אם יש גורמים אחרים מעדכנים אז אי אפשר לבנות על הPHP. ואז אכן הרעיון של הטריגרים שאמר @clickone הוא גם נכון (אגב לpostgres יש cron משלו בשם pgcron אבל כפי ש @clickone הסיק זה אכן לא נוגע למקרה שלך בגלל שזה לא תזמון אלא תגובה לשינוי).

                          זה בדיוק המקרה - שזה תגובה לעדכון של לקוח, אבל זה אמור להיות מאד ארוך.
                          תודה רבה.

                          clickoneC תגובה 1 תגובה אחרונה
                          0
                          • chagoldC chagold

                            @dlt אמר במודול php שרץ כל הזמן:

                            אם גורם העדכון הוא רק ממשק הווב, אז ברור שהוא זה שצריך להפעיל אותו.
                            אם הפעולה לוקחת זמן ממושך, אז כמו שכתבתי עדיף שהphp יפעיל משהו חיצוני בסגנון של exec.
                            אך אם יש גורמים אחרים מעדכנים אז אי אפשר לבנות על הPHP. ואז אכן הרעיון של הטריגרים שאמר @clickone הוא גם נכון (אגב לpostgres יש cron משלו בשם pgcron אבל כפי ש @clickone הסיק זה אכן לא נוגע למקרה שלך בגלל שזה לא תזמון אלא תגובה לשינוי).

                            זה בדיוק המקרה - שזה תגובה לעדכון של לקוח, אבל זה אמור להיות מאד ארוך.
                            תודה רבה.

                            clickoneC מנותק
                            clickoneC מנותק
                            clickone
                            כתב ב נערך לאחרונה על ידי
                            #13

                            @chagold זה שזה ארוך לא אמור להיות מעניין.
                            פשוט שים אותו בטרייד נפרד בתוך הPHP.
                            https://stackoverflow.com/questions/70855/how-can-one-use-multi-threading-in-php-applications
                            או שתבקש מהPHP או מהטריגר להריץ EXEC חיצוני.

                            אגב טריגרים כיום יכולים לעשות הרבה ברים. גם לשלוח מיילים וגם לבקש דברים מהPHP שלך.
                            אז אולי אתה צריך טריגר שיקרא לPHP שלך לדף מסויים ברגע שיש עידכון CDB.

                            אין טסט כמו פרודקשן.

                            המייל שלי urivpn@gmail.com

                            תגובה 1 תגובה אחרונה
                            1
                            • dovidD מנותק
                              dovidD מנותק
                              dovid
                              ניהול
                              כתב ב נערך לאחרונה על ידי
                              #14

                              @clickone זהו שאני הסברתי שזה כן מעניין, ראה בהודעה לעיל.
                              https://stackoverflow.com/questions/2212635/best-way-to-manage-long-running-php-script

                              • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                              • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                              clickoneC תגובה 1 תגובה אחרונה
                              1
                              • dovidD dovid

                                @clickone זהו שאני הסברתי שזה כן מעניין, ראה בהודעה לעיל.
                                https://stackoverflow.com/questions/2212635/best-way-to-manage-long-running-php-script

                                clickoneC מנותק
                                clickoneC מנותק
                                clickone
                                כתב ב נערך לאחרונה על ידי
                                #15

                                @dlt הוא מדבר שם על כמה דקות.
                                בכ מקרה אני יודע שPHP יכול לרוץ גם משורת פקודה. בלי להמתין.
                                כמו תוכית אסטריסק שכתובה בPHP. שם שיחה יכולה להיות שעה, והPHP ממתין (לדוגמא יש שליחה של מייל עם ההקלה בסיום השיחה)

                                אין טסט כמו פרודקשן.

                                המייל שלי urivpn@gmail.com

                                תגובה 1 תגובה אחרונה
                                1
                                • dovidD מנותק
                                  dovidD מנותק
                                  dovid
                                  ניהול
                                  כתב ב נערך לאחרונה על ידי dovid
                                  #16

                                  בודאי שאפשר עם PHP, הנקודה היא שזה לא יהיה מהקונטקסט של שירות האינטרנט (למשל תגובה לבקשת ווב, שזה בעצם רץ תחת אפאצ' או IIS או כל שרת אינטרנט אחר) שאז לא עוזר טריד נוסף כי הכל תחת אותו תהליך. ולכן אמרתי כאפשרות את exce שמה אפשר לשים כפרמטר את php עם קובץ להרצה (ואז זה רץ כתהליך נפרד לחלוטין באופן בלתי תלוי).

                                  • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                                  • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                                  תגובה 1 תגובה אחרונה
                                  2
                                  תגובה
                                  • תגובה כנושא
                                  התחברו כדי לפרסם תגובה
                                  • מהישן לחדש
                                  • מהחדש לישן
                                  • הכי הרבה הצבעות


                                  בא תתחבר לדף היומי!
                                  • התחברות

                                  • אין לך חשבון עדיין? הרשמה

                                  • התחברו או הירשמו כדי לחפש.
                                  • פוסט ראשון
                                    פוסט אחרון
                                  0
                                  • דף הבית
                                  • קטגוריות
                                  • פוסטים אחרונים
                                  • משתמשים
                                  • חיפוש
                                  • חוקי הפורום