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

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

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

בירור | בדיקה האם קוד מסויים עובד ברקע

מתוזמן נעוץ נעול הועבר תכנות
11 פוסטים 4 כותבים 520 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • אבייא מנותק
    אבייא מנותק
    אביי
    השיב לששא ב נערך לאחרונה על ידי
    #2

    @ששא תוכל לבדוק האם קובץ מסויים קיים במערכת, וכל פעם בתחילת פעולת הקוד, תיצור אותו, ובסיום תמחק אותו...

    ניתן ליצור עימי קשר 8140hp+t@gmail.com | קטלוג מוצרים
    הלינקיה שלי https://abaye.co/link.html

    תגובה 1 תגובה אחרונה
    2
    • yossizY מנותק
      yossizY מנותק
      yossiz
      כתב ב נערך לאחרונה על ידי
      #3

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

      📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

        @yossiz זה ממש רעיון טוב ואני גם הוספתי לולאת while שמחכה 5 שניות בין ריצה לריצה עד שהקובץ ייפתח
        שאלתי את GPT מה עושים אם יש כמה תהליכים שמחכים - יכול להיות שבסוף כולם ידחפו לפני מי שהיה הראשון
        אז הוא הביא לי את זה

        $fp = fopen('/tmp/php-commit.lock', 'r+');
        $max_attempts = 10; // מספר מקסימלי של ניסיונות
        $attempts = 0;
        
        while (!flock($fp, LOCK_EX | LOCK_NB)) {
            if (++$attempts >= $max_attempts) {
                error_log("Could not acquire lock after $max_attempts attempts.");
                fclose($fp);
                exit("Could not acquire lock after $max_attempts attempts.");
            }
            // המתן זמן אקראי בין 5 ל-15 שניות ונסה שוב
            $wait_time = rand(5, 15);
            error_log("Attempt $attempts failed. Waiting $wait_time seconds before retrying.");
            sleep($wait_time);
        }
        
        // ... do stuff
        
        fclose($fp);
        error_log("Lock acquired and file processed.");
        

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

        yossizY תגובה 1 תגובה אחרונה
        0
        • yossizY מנותק
          yossizY מנותק
          yossiz
          השיב לששא ב נערך לאחרונה על ידי
          #5

          @ששא כתב בבירור | בדיקה האם קוד מסויים עובד ברקע:

          מה עושים אם יש כמה תהליכים שמחכים - יכול להיות שבסוף כולם ידחפו לפני מי שהיה הראשון

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

          📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

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

            אגב, זה טעות להשתמש במקרה שלך בדגל LOCK_NB
            הדגל הזה מיועד למי שרוצה שהפונקציה תיכשל אם הקובץ נעול.
            אתה רוצה שהפונקציה תחכה עד שהנעילה ישתחרר.
            זה מייתר לגמרי את הלולאה וקריאות ל-sleep

            בכללי: צאטGPT הוא לא במקום קריאת הקוד והבנתו לעומק...

            📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

            תגובה 1 תגובה אחרונה
            4
            • ש מנותק
              ש מנותק
              ששא
              השיב לyossiz ב נערך לאחרונה על ידי ששא
              #7

              @yossiz כתב בבירור | בדיקה האם קוד מסויים עובד ברקע:

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

              זה חשוב לי
              אבל אתה אומר שממילא אין מה לעשות, אז אין מה לעשות...

              @yossiz כתב בבירור | בדיקה האם קוד מסויים עובד ברקע:

              אגב, זה טעות להשתמש במקרה שלך בדגל LOCK_NB
              הדגל הזה מיועד למי שרוצה שהפונקציה תיכשל אם הקובץ נעול.

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

              תודה על הסבת תשומת הלב

              yossizY תגובה 1 תגובה אחרונה
              1
              • yossizY מנותק
                yossizY מנותק
                yossiz
                השיב לששא ב נערך לאחרונה על ידי yossiz
                #8

                @ששא כתב בבירור | בדיקה האם קוד מסויים עובד ברקע:

                אבל אתה אומר שממילא אין מה לעשות, אז אין מה לעשות...

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

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

                📧 יוסי@מייל.קום | 🌎 בלוג | ☕ קפה

                תגובה 1 תגובה אחרונה
                1
                • Y מנותק
                  Y מנותק
                  yosef770
                  השיב לששא ב נערך לאחרונה על ידי
                  #9

                  @ששא לא פירטת איזה סוג עיבוד אתה עושה לטקסט אבל אם כל מה שאתה עושה זה להוסיף תוכן או לשנות תוכן של key value תוכל להשתמש בקריאה לעדכון קובץ ext.ini בשלוחה X ובגמר הפעולה לשכפל אותו לשלוחת Y עם שם הקובץ הרלוונטי. כך בעצם יוצא שאתה רק דוחף עדכון לקובץ ולא מעלה אותו כל פעם מחדש.

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

                    @yosef770 אבל אם יש קוד נוסף שעובד ברקע אז יהיו כפילויות או התנגשויות בהעתקה וכן בהעתקה חוזרת, לא?

                    Y תגובה 1 תגובה אחרונה
                    0
                    • Y מנותק
                      Y מנותק
                      yosef770
                      השיב לששא ב נערך לאחרונה על ידי
                      #11

                      @ששא לא, כי כל פעם אתה משכפל את הקובץ הכי עדכני שמחליף את הקובץ הקודם בשלוחת היעד.

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

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

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

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