הדרכה ועזרה ביצירת C# - windows service

  • הוסף לסימניות
  • #1
שלום,

אני צריכה ליצור windows service
למעשה יש לי מכרז, אני רוצה לפתוח אותו למספר מסויים של שעות שבהן אני מאפשרת לתת הצעות מחיר וכו'
לאחר מכן אני רוצה לסגור את המכרז ולעשות כל מיני פעולות כמו שליחת מיילים סיכומים וכו'.
למישהו יש דוגמא דומה, או שהתעסק עם זה פעם שאוכל לשאול שאלות.
כמו כן, מישהו יודע מה היתרון של שימוש ב quartz.net בשביל לתזמן את הפונקציה?

תודה רבה,
חיה
 
  • הוסף לסימניות
  • #2
רבותינו היו מגדירים כעין שאלה זו חסורי מחסרא....

את שואלת כאן שתי שאלות (יצירת windows service ופתיחת מכרז למס' שעות) רק לא כל כך הצלחתי להבין איך שתי השאלות מתחברות לבעיה אחת.. אם תוכלי בבקשה להרחיב שנוכל לעזור...

במידה ואני מנחש נכון, את רוצה ליצור web service שיהיה פעיל למס' שעות בלבד לצורך מכרז, תתקני אותי אם אני טועה
 
  • הוסף לסימניות
  • #3
תשאלי כאן את השאלות,
אשמח לעזור.
 
  • הוסף לסימניות
  • #4
טוב,
אני באמת לא טובה בניסוח ...
המכרז את זה אני יעשה לבד.. הרב כבר כתוב.
השאלה היא איך הכי טוב - עדיף אם יש למשהו דוגמא ליצור windows service ולא web service שירוץ ברקע ויאזין לבקשות
ושאלה נוספת היא איך הכי כדאי לתזמן את האזנה לבקשות לעוד שעתיים בתוך ה windows service האם דרך הספריה quartz.net של nuget או timer או אולי משהו אחר?
 
  • הוסף לסימניות
  • #5
איך את עושה את המכרז?
איך מתבצעות הקריאות?
אני מבינה שזה על שרת windows?
 
  • הוסף לסימניות
  • #6
אני חושב שמה שאת רוצה לעשות הוא הרבה יותר פשוט ממה שאת חושבת....

אם את יוצרת web service (בהנחה שצד לקוח שיתחבר אליו), לדוגמה:

PHP:
    public class Contract
    {
        public string Name { get; set; }

        public string Description { get; set; }

        public string Email { get; set; }
    }


    [Produces("application/json")]
    [Route("api/Example")]
    public class ExampleController : Controller
    {
        private DateTime            m_StartingTime;

        private DateTime            m_EndingTime;

        public ExampleController()
        {
            m_StartingTime = GetStartingTime();

            m_EndingTime = GetEndingTime();
        }

        private DateTime GetEndingTime()
        {
            throw new NotImplementedException();
        }

        private DateTime GetStartingTime()
        {
            throw new NotImplementedException();
        }

        [HttpPost]
        public ActionResult FileContract(Contract contract)
        {
            if (DateTime.Now > m_EndingTime)
            {
                return BadRequest("Contract has ended.");
            }

            if (DateTime.Now < m_StartingTime)
            {
                return BadRequest("Contract didn't start yet.");
            }

            // .....

            return Ok();
        }
    }


מה שנותר הוא רק להביא את זמני המכרז מאיפשהו ואז הקוד מאוד פשוט... ה web service רץ בשרת IIS פשוט והחיים טובים.... ובכל קריאה לשרת, נעשית בדיקה האם ניתן להרשם למכרז

* במידה ויש מס' של מכרזים, כמובן שהלקוח צריך לציין איזה ContractId הוא צריך להכניס (בעצם זה עוד property ב Contract) ואז במקום להשתמש ב StartingTime וב EndingTime, כדאי לגשת ל db ולהביא את המכרז המסוים שבו צריכים להיות שני שדות (StartingTime ו EndingTime) ולוודא שאכן הזמן הנוכחי הוא מתאים..


בהצלחה
 
  • הוסף לסימניות
  • #7
המכרז הוא ידני בדוט נט, לא איזה תוסף כלשהוא, ביצירה אני פותחת אותו למספר שעות מוגדר
ולאחר שמסתיים הזמן אני רוצה לעשות כל מיני פעולות
הקריאות מתבצעות מפרוייקט asp.net שרץ על אותו השרת.
וכן, השרת הוא windows
 
  • הוסף לסימניות
  • #8
מה שנותר הוא רק להביא את זמני המכרז מאיפשהו ואז הקוד מאוד פשוט... ה web service רץ בשרת IIS פשוט והחיים טובים.... ובכל קריאה לשרת, נעשית בדיקה האם ניתן להרשם למכרז
אם הבנתי נכון בדוגמא שהבאת זה רק מחזיר לי אם הזמן עבר או לא.
אני רוצה משהו שיקרה באופן אוטומטי כשהזמן מסתיים לא בקריאה כל-שהיא
 
  • הוסף לסימניות
  • #9
אההההההההההה. שלום עליכם, עכשיו אנחנו מדברים....

במידה והמכרז הוא משהו קבוע (יומיומי וכיו"ב), עדיף להשתמש ב Windows Task Scheduler.

עקרונית זה עובד כך: יוצרים תוכנה נפרדת (console app הכי פשוט) שעושה את מה שצריך לעשות בסוף המכרז (לדוגמה, שליחת מיילים, עדכון ה db וכו' וכו') ואז מוסיפים את התוכנה ל WIndows Task Scheduler ע"י ה ScheduledTasks (אשמח להרחיב במידה וזה רלוונטי) ואז הווינדוס יריץ את התוכנה בשעה שהוגדרה לו

במידה והמכרז קורה כל פעם בשעה אחרת, באמת מתאים יותר Quartz .net, לא יצא לי להשתמש בספרייה הזו (מודה באשמה), אבל יש כאן לינק עם דוגמאות של קוד (כדאי להוריד את הקוד שנמצא בכתבה) שיכולות לסייע במה שאת רוצה:

https://www.c-sharpcorner.com/article/task-scheduling-through-quartz-in-c-sharp/

בהצלחה
 
  • הוסף לסימניות
  • #10
אההההההההההה. שלום עליכם, עכשיו אנחנו מדברים....

במידה והמכרז הוא משהו קבוע (יומיומי וכיו"ב), עדיף להשתמש ב Windows Task Scheduler.

עקרונית זה עובד כך: יוצרים תוכנה נפרדת (console app הכי פשוט) שעושה את מה שצריך לעשות בסוף המכרז (לדוגמה, שליחת מיילים, עדכון ה db וכו' וכו') ואז מוסיפים את התוכנה ל WIndows Task Scheduler ע"י ה ScheduledTasks (אשמח להרחיב במידה וזה רלוונטי) ואז הווינדוס יריץ את התוכנה בשעה שהוגדרה לו

במידה והמכרז קורה כל פעם בשעה אחרת, באמת מתאים יותר Quartz .net, לא יצא לי להשתמש בספרייה הזו (מודה באשמה), אבל יש כאן לינק עם דוגמאות של קוד (כדאי להוריד את הקוד שנמצא בכתבה) שיכולות לסייע במה שאת רוצה:

https://www.c-sharpcorner.com/article/task-scheduling-through-quartz-in-c-sharp/

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

ממש תודה על הלינק המצורף
 
  • הוסף לסימניות
  • #11
אני לא בטוח שצריך להסתבך עם windows service

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

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

פרוגבוט

תוכן שיווקי
פרסומת

פוסטים חדשים שאולי לא קראת....

גלגל_מזלות_וינשוף_קסום.gif

ברוכים הבאים לאשכול הרשמי של "חויה בקליק" - הבית של המשחקים האינטראקטיביים, הקליקרים וההפעלות הכי חכמות שיש.

לרגל השקת האשכול ועונת המבצעים (Black Friday שקורה עכשיו וחנוכה שמגיע מיד אחריו), בנינו עבורכם את "גלגל המזל".אנחנו לא נגלה לכם איזו הנחה תקבלו. אתם תצטרכו לגלות בעצמכם...

אז איך זה עובד?​

בנינו אלגוריתם מיוחד שמחלק קופונים בצורה אקראית לגמרי.
בתוך המאגר מסתתרים:
מגוון סוגי קופונים לשירותים שלנו מהנחות בסיס ועד משחקים ללא עלות!

רוצים לסובב את הגלגל ולבדוק את המזל?​

  1. הגיבו כאן באשכול: "אני רוצה לסובב את הגלגל"
  2. נשלח לכם בהודעה פרטית קישור קסם חד-פעמי.
  3. לחצו על הקישור- ותגלו מיד במה זכיתם.
  4. כל כרטיס זוכה!

קצת עלינו (למי שלא מכיר):​

אנחנו ב"חויה בקליק" הופכים כל אירוע – מיום הולדת משפחתי ועד כנס של 2000 איש – לאירוע סוחף, תחרותי ומגבש.

מה תמצאו אצלינו:

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

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

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

  • ספיישל חנוכה: תוכניות מוכנות, מעוצבות ומתוכנתות למסיבות חנוכה - רק לחבר למסך ולהתחיל לשחק.

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

שירות ותמיכה​

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

📞 בטלפון לתמיכה ושירות: 03-773-7970
🌐 לאתר שלנו ולהתרשמות: -https://clicker.co.il/
📧 מייל: K037737970 @ GMAIL.COM

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

הצטרפות לניוזלטר

איזה כיף שהצטרפתם לניוזלטר שלנו!

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

לוח מודעות

הפרק היומי

הפרק היומי! כל ערב פרק תהילים חדש. הצטרפו אלינו לקריאת תהילים משותפת!


תהילים פרק כה

אלְדָוִד אֵלֶיךָ יי נַפְשִׁי אֶשָּׂא:באֱלֹהַי בְּךָ בָטַחְתִּי אַל אֵבוֹשָׁה אַל יַעַלְצוּ אֹיְבַי לִי:גגַּם כָּל קוֶֹיךָ לֹא יֵבֹשׁוּ יֵבֹשׁוּ הַבּוֹגְדִים רֵיקָם:דדְּרָכֶיךָ יי הוֹדִיעֵנִי אֹרְחוֹתֶיךָ לַמְּדֵנִי:ההַדְרִיכֵנִי בַאֲמִתֶּךָ וְלַמְּדֵנִי כִּי אַתָּה אֱלֹהֵי יִשְׁעִי אוֹתְךָ קִוִּיתִי כָּל הַיּוֹם:וזְכֹר רַחֲמֶיךָ יי וַחֲסָדֶיךָ כִּי מֵעוֹלָם הֵמָּה:זחַטֹּאות נְעוּרַי וּפְשָׁעַי אַל תִּזְכֹּר כְּחַסְדְּךָ זְכָר לִי אַתָּה לְמַעַן טוּבְךָ יי:חטוֹב וְיָשָׁר יי עַל כֵּן יוֹרֶה חַטָּאִים בַּדָּרֶךְ:טיַדְרֵךְ עֲנָוִים בַּמִּשְׁפָּט וִילַמֵּד עֲנָוִים דַּרְכּוֹ:יכָּל אָרְחוֹת יי חֶסֶד וֶאֱמֶת לְנֹצְרֵי בְרִיתוֹ וְעֵדֹתָיו:יאלְמַעַן שִׁמְךָ יי וְסָלַחְתָּ לַעֲוֹנִי כִּי רַב הוּא:יבמִי זֶה הָאִישׁ יְרֵא יי יוֹרֶנּוּ בְּדֶרֶךְ יִבְחָר:יגנַפְשׁוֹ בְּטוֹב תָּלִין וְזַרְעוֹ יִירַשׁ אָרֶץ:ידסוֹד יי לִירֵאָיו וּבְרִיתוֹ לְהוֹדִיעָם:טועֵינַי תָּמִיד אֶל יי כִּי הוּא יוֹצִיא מֵרֶשֶׁת רַגְלָי:טזפְּנֵה אֵלַי וְחָנֵּנִי כִּי יָחִיד וְעָנִי אָנִי:יזצָרוֹת לְבָבִי הִרְחִיבוּ מִמְּצוּקוֹתַי הוֹצִיאֵנִי:יחרְאֵה עָנְיִי וַעֲמָלִי וְשָׂא לְכָל חַטֹּאותָי:יטרְאֵה אוֹיְבַי כִּי רָבּוּ וְשִׂנְאַת חָמָס שְׂנֵאוּנִי:כשָׁמְרָה נַפְשִׁי וְהַצִּילֵנִי אַל אֵבוֹשׁ כִּי חָסִיתִי בָךְ:כאתֹּם וָיֹשֶׁר יִצְּרוּנִי כִּי קִוִּיתִיךָ:כבפְּדֵה אֱלֹהִים אֶת יִשְׂרָאֵל מִכֹּל צָרוֹתָיו:
נקרא  2  פעמים
למעלה