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

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

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

יצירת תור לבקשות API

מתוזמן נעוץ נעול הועבר תכנות
33 פוסטים 6 כותבים 757 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • nigunN מנותק
    nigunN מנותק
    nigun
    השיב לchagold ב נערך לאחרונה על ידי nigun
    #6

    @chagold
    לא כל כך הבנתי מה יצא שם
    ושכחתי לציין שלא טוב לי לולאה אינסופית עם sleep וכדו'
    או קריאות מסקריפט א' לסקריפט ב' וב' קורא חזרה לא'
    כי אז אם השרת נופל ל2 שניות התהליך מת

    מייל: nigun@duck.com

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

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

      דוגמה:

      $f = fopen('some_file', 'a');
      flock($f, LOCK_EX);
      //פה אתה כותב את הקריאה ל API
      flock($f, LOCK_UN);
      fclose($f);
      

      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

      בכל נושא אפשר ליצור קשר dovid@tchumim.com

      nigunN תגובה 1 תגובה אחרונה
      4
      • nigunN מנותק
        nigunN מנותק
        nigun
        השיב לdovid ב נערך לאחרונה על ידי
        #8

        @dovid
        מה יקרה לתהליך הבא
        יחכה או יפסק?

        מייל: nigun@duck.com

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

          @nigun כמובן שיחכה (אלא"כ פסיפסתי את ההבנה, אני די מסתבך עם השפה הזו),
          אתה יכול לבדוק את זה ככה:

          $f = fopen('some_file', 'a');
          flock($f, LOCK_EX);
          sleep(10);
          flock($f, LOCK_UN);
          fclose($f);
          

          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

          בכל נושא אפשר ליצור קשר dovid@tchumim.com

          תגובה 1 תגובה אחרונה
          0
          • י מנותק
            י מנותק
            יוסף בן שמעון
            כתב ב נערך לאחרונה על ידי
            #10

            @nigun בנוד אפשר לעשות את זה מסודר עם אירועים, תודיע אם זה רלוונטי להוסיף פרטים

            nigunN תגובה 1 תגובה אחרונה
            4
            • WWWW מנותק
              WWWW מנותק
              WWW
              השיב לnigun ב נערך לאחרונה על ידי WWW
              #11

              @nigun אתה מדבר על TTS אולי?
              אני בניתי לעצמי משהו, אחרי שחפרתי באינטרנט ומצאתי שזה הפתרון הכי פשוט, של בדיקה האם קובץ מסוים קיים, ואם כן להמתין.

              אצלי היה צורך אחר, שלא יהיו בשום אופן 2 קריאות לAPI בו זמנית.

              ובעצם השתמשתי במטמון של קובץ, כי ב PHP לא קיים מטמון נורמלי.
              ומיהרתי (?) את זה ע"י בדיקה שהקובץ לא קיים, ואם הקובץ קיים, בודק גם את תאריך השינוי האחרון, לוודא שלא היה קריסה או שהסקריפט נגמר לפני שמחק את הקובץ. כך שאם הקובץ השתנה לפני יותר מ 8 שניות, הוא מחק אותו.
              כמובן שכל הבדיקה מבוצעת בלולאה עם USLEEP של XXX אלפיות שנייה.

              WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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

                @WWW אוי ואבוי...

                מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                בכל נושא אפשר ליצור קשר dovid@tchumim.com

                WWWW תגובה 1 תגובה אחרונה
                2
                • chagoldC מנותק
                  chagoldC מנותק
                  chagold
                  השיב לnigun ב נערך לאחרונה על ידי
                  #13

                  @nigun אמר ביצירת תור לבקשות API:

                  @chagold
                  לא כל כך הבנתי מה יצא שם

                  שבPHP מומלץ להשתמש עם טריגרים בד"ב ולא לולאה.
                  אם כי לא יודע אם זה רלוונטי לגביך (גם כי לא הבנתי בדיוק את המקרה...).

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

                    עכשיו נפל לי האסימון
                    אני צריך לעשות את הנעילה על השלב של הפעלת הסקריפט בלולאה מתוך הנתונים בDB
                    ולהפעיל כל דקה עם cron
                    וכדי למנוע אפשרות שסקריפט לא יגמר והcron יפעיל את הסקריפט שוב
                    אני עושה נעילה שאם הנעילה = true אז או שיפסיק או שיכנס ללולאת שינה
                    אני לא יכול לעשות את זה על הפעולה עצמה ושהמאזין יחכה בתור על הקו
                    כי יכול להיות שהמאזין יתקע חצי דקה על הקו עם שקט ואז הוא יחשוב שזה לא עובד
                    (אלא אם כן אני בונה את זה לבד באסטריסק ואז אני יכול לשים לו מוזיקה)
                    אמנם יש לי בעיה אם פעולה לא בוצעה בהצלחה המאזין לא ידע את זה
                    ויצטרך לחזור לקו בשביל לשמוע הודעה שים לב הפעולה האחרונה נכשלה
                    @chagold
                    טריגר בד"ב לא יעזור לי כי אני צריך לבצע פעולה בPHP עם הנתונים שנמצאים בד"ב
                    ולא לבצע פעולה בד"ב כמו עדכון/כתיבה/מחיקה

                    לגבי הנעילה הזאת מישהו יודע מה ההבדל בין נעילה לבין פשוט לכתוב בקובץ טקסט 1 ובשחרור לכתוב 0?

                    מייל: nigun@duck.com

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

                      @nigun
                      אתה מערב מה שאתה רוצה עם מה שאתה יודע וניסית וזה מקשה על הבנת השאלה.
                      האם הניסוח הבא נכון:
                      אתה רוצה שבעת שגולש אחד נכנס תבוצע פעולה א' ובאם בעוד הפעולה מבוצעת ייכנס שני אז תישמע מוזיקה לשני עד שהפעולה של א' תיגמר ואז תתחיל פעולה ב'?

                      מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                      בכל נושא אפשר ליצור קשר dovid@tchumim.com

                      nigunN תגובה 1 תגובה אחרונה
                      3
                      • WWWW מנותק
                        WWWW מנותק
                        WWW
                        השיב לdovid ב נערך לאחרונה על ידי
                        #16

                        @dovid אמר ביצירת תור לבקשות API:

                        @WWW אוי ואבוי...

                        ??

                        WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

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

                          @WWW מה שעשית נחשב המצאת הגלגל, וגם עבודה שחורה.
                          המצאת הגלגל למה? כי זה מושג שלא רק אתה צריך. אז למה לעבוד עם טריקים משלך ולא לבנות על ניסיון האחרים?
                          עבודה שחורה למה? כי בקוד שלך נהיה לכלוך. בדיקת קיום, בדיקת תאריך, מרחק בשניות ואם תהיה בעיה סימן שיש נפילה אחרת עליה לא חשבת...

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

                          מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                          בכל נושא אפשר ליצור קשר dovid@tchumim.com

                          WWWW 2 תגובות תגובה אחרונה
                          2
                          • WWWW מנותק
                            WWWW מנותק
                            WWW
                            השיב לdovid ב נערך לאחרונה על ידי
                            #18

                            @dovid אמר ביצירת תור לבקשות API:

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

                            אדרבה, אני פתוח להצעות...
                            מצאתי כל מיני פתרונות שבנויים על מטמון קבצים, לא יודע איך הם מתמודדים עם 2 בקשות בו זמנית, חשבתי לעצמי שלא כדאי לי להתקין את כל התלויות שלהם בשביל איזה מקום אחד קטן שאני צריך את זה.

                            אני בעצם חיפשתי משהו כמו משתנה PHP ברמת שרת.
                            אבל לא מצאתי דבר כזה.

                            אשמח לקבל המלצות.

                            WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                            dovidD תגובה 1 תגובה אחרונה
                            0
                            • WWWW מנותק
                              WWWW מנותק
                              WWW
                              השיב לdovid ב נערך לאחרונה על ידי WWW
                              #19

                              @dovid אמר ביצירת תור לבקשות API:

                              עבודה שחורה למה? כי בקוד שלך נהיה לכלוך. בדיקת קיום, בדיקת תאריך, מרחק בשניות ואם תהיה בעיה סימן שיש נפילה אחרת עליה לא חשבת...

                              זה לא כ"כ הבנתי.
                              ובגדול העדפתי עבודה שחורה, מאשר להתקין חצי מדינה, עם תהליכים ברקע.

                              WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                              תגובה 1 תגובה אחרונה
                              0
                              • nigunN מנותק
                                nigunN מנותק
                                nigun
                                השיב לdovid ב נערך לאחרונה על ידי
                                #20

                                @dovid
                                צודק אני קצת חלש בניסוחים
                                אבל הבנת נכון
                                אבל לא חייב להיות מוסיקה
                                יכול להיות הודעה הפעולה תתבצע בדוקת הקרובות
                                אמנם עדיף מוזיקה אבל זה לא אפשרי בימות המשיח

                                מייל: nigun@duck.com

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

                                  @nigun בלי קשר לשאלתך, אני לא יודע איך בPHP+ימות אתה יכול להשמיע הודעה ("אנא המתן") ולאחר הפעולה לעדכן על כך.
                                  אם את החלק הזה אתה יודע אשמח לקוד והמחשה לעניין.

                                  מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                  בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                  nigunN תגובה 1 תגובה אחרונה
                                  1
                                  • dovidD מנותק
                                    dovidD מנותק
                                    dovid ניהול
                                    השיב לWWW ב נערך לאחרונה על ידי
                                    #22

                                    @WWW כשקראתי את הודעתך הבנתי שמטרתך הייתה רק מניעה של קוד לעבוד במקביל, ובשביל זה הבאתי קוד שאף אחד לא אישר אם הוא עובד (כלומר שהבקשה השניה מחכה לסיום הראשונה).
                                    אם יש לך מטרה של מטמון אשמח לפירוט ואשמח להראות לך שדברים כאלה אמורים להיות פשוטים יותר וטריקיים פחות.

                                    מנטור אישי למתכנתים (ולא רק) – להתקדם לשלב הבא!

                                    בכל נושא אפשר ליצור קשר dovid@tchumim.com

                                    WWWW תגובה 1 תגובה אחרונה
                                    0
                                    • nigunN מנותק
                                      nigunN מנותק
                                      nigun
                                      השיב לdovid ב נערך לאחרונה על ידי
                                      #23

                                      @dovid
                                      בימות אי אפשר לעשות מוזיקה בהמתנה לפעולה (ובארטריסק אפשר)
                                      מה שכן אפשר לעשות הודעה "אנא המתן" ומעבר לשלוחה נוספת שבודקת האם הפעולה בוצעה
                                      אם עדיין לא בוצע הפעולה משמיע הודעה של כמה שניות מוזיקה
                                      ואחר כך מפנה שוב לאותה שלוחה (של הבדיקה) שוב ושוב עד שמקבל תשובה הפעולה בוצעה/נכשלה ועובר לתפריט הבא
                                      (צריך לעשות מעבר נקי בין הסוף של הקובץ מוזיקה להתחלה שלא ישמע מוזר)

                                      מייל: nigun@duck.com

                                      dovidD תגובה 1 תגובה אחרונה
                                      1
                                      • nigunN מנותק
                                        nigunN מנותק
                                        nigun
                                        השיב ליוסף בן שמעון ב נערך לאחרונה על ידי
                                        #24

                                        @יוסף-בן-שמעון אמר ביצירת תור לבקשות API:

                                        @nigun בנוד אפשר לעשות את זה מסודר עם אירועים, תודיע אם זה רלוונטי להוסיף פרטים

                                        לא נראה לי שאני ארוץ כל כך מהר ללמוד נוד
                                        אבל מעניין אותי מה ה mindset בנוד
                                        אז רק אם יש לך זמן תכתוב כאן את הכיוון

                                        מייל: nigun@duck.com

                                        תגובה 1 תגובה אחרונה
                                        0
                                        • WWWW מנותק
                                          WWWW מנותק
                                          WWW
                                          השיב לdovid ב נערך לאחרונה על ידי
                                          #25

                                          @dovid אמר ביצירת תור לבקשות API:

                                          @WWW כשקראתי את הודעתך הבנתי שמטרתך הייתה רק מניעה של קוד לעבוד במקביל, ובשביל זה הבאתי קוד שאף אחד לא אישר אם הוא עובד (כלומר שהבקשה השניה מחכה לסיום הראשונה).

                                          וואוו פיספתי...
                                          בינתיים נראה שזה עובד מצוין!
                                          צריך לבדוק מה קורה אם התהליך קורס / הסקריפט מסתיים באמצע?

                                          איך הגעת לזה?

                                          WWW.netfree@gmail.com || קשבק! החזר כספי לבנק על רכישות באינטרנט || עונים על סקרים ומרוויחים כסף!

                                          dovidD תגובה 1 תגובה אחרונה
                                          0

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

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

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