1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/xueshanlinghu-xjobs

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

Введение

xjobs — это платформа для планирования задач, разработанная на Python 3.

Разработчик: Снежный Лис

«x» в названии xjobs обозначает первую букву имени разработчика — «С».

Проект был создан для того, чтобы обеспечить собственное облачное хранилище автора инструментами планирования задач. Эти инструменты могут быть полезны для выполнения различных задач, таких как скрипты на Python, BAT-файлы, хранимые процедуры и других. Автор выражает благодарность своему руководителю за помощь и поддержку.

Платформа лучше всего подходит для использования на собственном сервере.

Поскольку разработка велась на платформе Windows и для неё же предназначена, автор гарантирует стабильную работу только на этой операционной системе. Для работы на других платформах рекомендуется провести самостоятельное тестирование.

Если у вас есть какие-либо вопросы или нужна дополнительная информация, вы можете обратиться к блогу автора:

Блог Снежного Лисаhttp://www.xueshanlinghu.com

Необходимая среда для установки

  1. Python 3 установлен на компьютере. Для предотвращения ошибок, связанных с более ранними версиями Python, программа поддерживает минимальную версию Python 3.6.

  2. Необходимо установить следующие пакеты Python:

    • Apscheduler:
    pip install apscheduler

Использование

Первое использование:

  1. Загрузите последнюю версию программы с сайта https://gitee.com/xueshanlinghu/xjobs/releases и распакуйте её.

  2. При первом использовании откройте командную строку (cmd), перейдите в папку с программой и запустите команду для её тестирования:

    python xjobsConsole.py

    Если возникнут проблемы, следуйте инструкциям по их устранению.

    • Если появится сообщение об ошибке импорта модуля apscheduler, установите этот пакет, следуя инструкции в разделе «Необходимая среда для установки».

    • Если программа сообщает о минимальной поддерживаемой версии Python 3.6, убедитесь, что у вас установлена версия Python не ниже 3.6. Или сообщите автору, и он предоставит вам скомпилированный файл программы для использования (или вы можете самостоятельно исправить код и скомпилировать программу).

    • Другие ошибки следует устранять в соответствии с вашей конкретной ситуацией. Если проблему не удаётся решить, обратитесь к автору или создайте issue.

Дальнейшее использование:

  1. После успешного тестирования программы можно перейти к её использованию. Для этого дважды щёлкните на файле «запуск xjobs планировщика задач.bat», чтобы запустить платформу.

    Файл содержит следующую команду:

    python xjobsConsole.py
  2. Как добавить запланированные задачи?

    Установите DB Browser или SQLite Studio, а затем откройте базу данных xjobs.db для редактирования.

    Автор уже настроил одну тестовую задачу, но вы также можете настроить свои собственные задачи.

    Программа пока не предоставляет функции визуального управления базой данных, поэтому вам придётся использовать SQL-запросы или сторонние инструменты для настройки базы данных. В будущем автор может рассмотреть возможность создания графического интерфейса для конфигурации.

    В базе данных есть несколько таблиц, которые выполняют различные функции:

    • sqlite_sequence: таблица, автоматически генерирующая и заполняющая последовательности для базы данных SQLite. Вам не нужно обращать на неё внимание.

    • xjobs_dictionary: таблица с подробным описанием всех полей и таблиц базы данных. Вы можете использовать её как словарь или настроить поля в соответствии со своими потребностями.

    • xjobs_task: самая важная таблица, которая требует настройки. Она содержит множество полей, некоторые из которых обязательны для заполнения. Вы можете следовать примерам, предоставленным автором, или использовать их в качестве шаблона для своих собственных задач.

      Поле is_pause управляет включением или отключением задачи. Значение 0 означает, что задача включена, а значение 1 — что она приостановлена. Если вам больше не нужны тестовые задачи, вы можете установить значение 1.

      Поле update_time автоматически обновляется с помощью триггера. Вам не нужно заполнять его вручную.

      Поле cron_exp требует особого внимания при настройке. Оно представляет собой выражение для задания расписания. Вот руководство по его заполнению:

      '''
      Последовательность единиц измерения: секунды, минуты, часы, дни, месяцы, недели (год обычно опускается).
      
      [Описание выражений cron]
      *: запускает все значения.
      */a: запускает каждое значение от минимального до максимального.
      a-b: запускает значения в диапазоне от a до b.
      a-b/c: запускает каждые c значений в диапазоне от a до b.
      xth y: запускает каждую y неделю, начиная с x. Например, 2nd sun означает запуск каждую вторую неделю в воскресенье.
      last x: запускает в последний день месяца каждую x неделю. Например, last fri означает запуск в последнюю пятницу каждого месяца.
      last: запускает в последний день каждого месяца.
      x,y,z: запускает любое выражение, соответствующее комбинации; можно комбинировать любое количество выражений.
      
      Обратите внимание: выражения xth y, last x и last используются только в параметре day. Остальные параметры могут использовать все остальные выражения.
      
      Примечание: если вы используете выражения xth y, last x или last в других параметрах, кроме day, они могут не работать!
      
      Дополнительные сведения:
      Дни недели: ['mon', 'tue', 'wed', 'thu', 'fri', 'sat', 'sun']
      Месяцы: ['jan', 'feb', 'mar', 'apr', 'may', 'jun', 'jul', 'aug', 'sep', 'oct', 'nov', 'dec']
      Сортировка, какой номер:
      options = ['1st', '2nd', '3rd', '4th', '5th', 'last']
      '''

    Пример:

    */10 * * * * * # запускать каждые 10 секунд.
    0 50 * * * * # запускать в 50 минут любого часа.
    * 50 * * * * # запускать каждую секунду в 50 минут любого часа (отличается от предыдущего примера).
    0 0 6 * * * # запускать каждый день в 6 часов.
    0 0 6 28 * * # запускать 28-го числа каждого месяца в 6 часов.
    0 0 6 'last fri' * # запускать в последнюю пятницу каждого месяца в 6 часов (обратите внимание на кавычки вокруг day).
    56 30 8 '2nd sun' feb,apr * # запускать вторую неделю в воскресенье каждого февраля и апреля в 8:30:56.
  3. Есть ли мониторинг при возникновении проблем с выполнением задач?

    Платформа имеет встроенную функцию отправки уведомлений по электронной почте, которая по умолчанию отключена. Чтобы включить её, перейдите в каталог xueshan_utils и найдите файл xs_sendmail_setting.py. Этот файл содержит следующие настройки:

    • sender: адрес отправителя.

    • receiver: адреса получателей, разделённые запятыми.

    • username: имя пользователя для входа в почтовый сервис.

    • password: пароль для входа в почтовый сервис.

    Программа использует SMTP-сервис QQ Mail для отправки сообщений. Сначала необходимо активировать этот сервис в настройках QQ Mail и получить токен для авторизации. Затем настройте файл xs_sendmail_setting.py, удалив слово «шаблон» из имени файла.

    После настройки файла откройте файл xjobsConsole.py и измените значение USE_MAIL с False на True.

    В будущих версиях возможно добавление функций отправки SMS или уведомлений через WeChat. Однако на данный момент эти функции не реализованы.

Желаю вам приятного использования!

Журнал обновлений V1.4 (20200511):

  1. Обновлён начальный словарь базы данных и исправлены ошибки в bat-файлах.
  2. Исправлены проблемы с ошибками при выполнении команд cmd или bat.

V 1.3 (20200210):

  1. Исправлено многократное выполнение задач, приводящее к появлению нескольких дочерних процессов Python после завершения.

V 1.2 (20200130):

  1. Исправлена ошибка, возникающая при отслеживании исключений и получении трассировки стека при выполнении кода.
  2. Оптимизирована обработка выражений cron в классе Snow Mountain, что позволяет корректно обрабатывать выражения day с использованием last x или xth y.
  3. README дополнен множеством примеров и пояснений по заполнению выражений cron. Обновление:

На основе предыдущей версии сделайте резервную копию файла xjobs.db старой версии, после загрузки новой версии восстановите вашу базу данных xjobs.db.

Версия 1.1 от 29 января 2020 года:

  1. Исправлена проблема, из-за которой в предыдущей версии поддерживался только Python 3.7 и выше, но некоторые команды выдавали ошибку. Минимальная поддерживаемая версия программы была снижена до Python 3.6.

  2. Оптимизированы сообщения об ошибках и проверка версии для улучшения взаимодействия с новыми пользователями.

  3. Проведено масштабное обновление методов использования xjobs, подробности обновления можно найти в файле README.

  4. Добавлены настройки мониторинга электронной почты. По умолчанию мониторинг электронной почты отключен, чтобы избежать ошибок при использовании, если у некоторых пользователей ещё не настроена конфигурация электронной почты. Это снижает порог входа для новых пользователей.

Версия 1.0 от 28 января 2020 года:

  1. Завершена разработка и тестирование большей части функций системы планирования задач xjobs, достигнута готовность к запуску. Система будет развёрнута в рабочей среде.

Приглашаем всех попробовать использовать систему. Если у вас возникнут проблемы, вы можете сообщить мне о них или создать запрос на изменение (Pull Requests).

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
MIT
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/xueshanlinghu-xjobs.git
git@api.gitlife.ru:oschina-mirror/xueshanlinghu-xjobs.git
oschina-mirror
xueshanlinghu-xjobs
xueshanlinghu-xjobs
master