На главную Наши проекты:
Журнал   ·   Discuz!ML   ·   Wiki   ·   DRKB   ·   Помощь проекту
ПРАВИЛА FAQ Помощь Участники Календарь Избранное RSS
msm.ru
[!] Как относитесь к модерированию на этом форуме? Выскажите свое мнение здесь
Модераторы: Qraizer
  
> Проектирование Планировщика
    Всем привет!

    Вопрос - скорее праздное любопытство. У меня уже есть свое решение, но я хотел бы услышать другие решения.

    Итак. В моей программе есть "подсистема", которая отвечает за периодическую отсылку (раз в месяц) отчетности по SFTP в "дружественную" организацию. Подсистема крутится, вернее будет крутится, в отдельном потоке. Данные о передачах хранятся в БД SQLite3 в виде отдельных записей с полями:

    ExpandedWrap disabled
      // Id - идентификатор записи
      // Year - год формируемой отчетности
      // Month - месяц формируемой отчетности
      // Planned - временной штамп отсылки отчетности
      // Try - временной штамп последней попытки отсылки отчетности
      // Count - количество попыток отсылки отчетности
      // Ready - флаг успешной отсылки отчетности

    Отсылка отчетности, как правило 5..7 число месяца, следующего за отчетным. Я накидал вот такую функциональную схему в виде обычной блок схемы:
    Скрытый текст
    user posted image

    Собственно, вопрос: какими программными конструкциями/подходами вы бы реализовали данный функционал?
      крон+баш либо перл скрипт с проверкой состояний и результатов, если че не так - ляпнуть чё нить на мыло или в телегу.
        Увы, чисто виндовое решение нужно. Да еще должна возможность выполнять просроченные до некоторого временного предела задания. И увы, автономное - так что это должено быть на С/C++.
          Цитата JoeUser @
          Увы, чисто виндовое решение нужно. Да еще должна возможность выполнять просроченные до некоторого временного предела задания. И увы, автономное - так что это должено

          Берите планировщик виндоуса тем более там уже есть повторение просроченных задач и PowerShell скрипт.
            Pavia, посмотрел - нееее! Да там есть настройки, да там есть повторения... Ситуация - лег инет, мой отчет не отослался. Мне нужно повторить 3 раза с интервалом в 10 мин, и если и так не прошло - подождать час и попробовать заново. А если не отослался до 7 числа текущего месяца, то перестать пробовать отсылку. Мне эту всю лабуду вручную править в планировщике? Свят-свят.

            Поэтому я и прошу решений на С++ в самой программе ... машину состояний, какой-то набор классов, еще ченить, я в этом плане.
              Цитата JoeUser @
              Собственно, вопрос: какими программными конструкциями/подходами вы бы реализовали данный функционал?

              1) Написал бы программу по алгоритму, зарегил ее в шедулере(планировщике).
              2) Написал бы сервис, с функциональностью шедулера, который бы все это выполнял

              Добавлено
              Цитата JoeUser @
              Поэтому я и прошу решений на С++ в самой программе ... машину состояний, какой-то набор классов, еще ченить, я в этом плане.

              Почему С/С++ ? Бери PowerShell/Python/.Net Core, я думаю с помощью этих средств такой функционал легко реализуется. За денек реализовать можно вполне.
              Сообщение отредактировано: Wound -
                Цитата JoeUser @
                Мне эту всю лабуду вручную править в планировщике? Свят-свят.
                Возможно ты удивишься, но это всё делается планировщиком. Настраивается один раз и работает потом само.
                  Всем спасибо за участие! Вопрос закрываю.
                  0 пользователей читают эту тему (0 гостей и 0 скрытых пользователей)
                  0 пользователей:


                  Рейтинг@Mail.ru
                  [ Script execution time: 0,0298 ]   [ 16 queries used ]   [ Generated: 19.04.24, 04:55 GMT ]