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

OSCHINA-MIRROR/liuyueyi-quick-task

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

Быстрый обзор задач: динамическая структура для выполнения сценариев с поддержкой их добавления, удаления и изменения во время работы

Quick-Task — это простая динамическая система для управления сценариями, которая позволяет выполнять сценарии на этапе выполнения, добавлять, удалять и изменять их динамически. Она может быть полезна для тестирования интерфейсов, исправления данных, запуска периодических задач или проверки скриптов в серверной части.

Основные технологии

  • groovyEngine — для загрузки и выполнения скриптов Groovy;
  • commons-io — для отслеживания изменений файлов;
  • commons-cli — для анализа параметров командной строки.

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

1. Конфигурация в pom

Добавьте репозиторий:

<repositories>
    <repository>
        <id>YiHui-Repo</id>
        <url>https://raw.githubusercontent.com/liuyueyi/maven-repository/master/repository</url>
    </repository>
</repositories>

Добавьте зависимость проекта:

<dependency>
    <groupId>com.git.hui</groupId>
    <artifactId>task-core</artifactId>
    <version>0.0.1</version>
</dependency>

2. Применение

a. Исходный код

После загрузки исходного кода вы можете обратиться к классу com.git.hui.task.AppLaunch для запуска приложения. Класс будет отслеживать изменения в каталоге /tmp/script/TestScript.groovy.

b. Ссылка на jar-пакет

Создайте скрипт Groovy и поместите его в каталог /tmp/script/ (например, DemoScript.groovy):

package com.git.hui.task

import com.git.hui.task.api.ITask

class DemoScript implements ITask {
    @Override
    void run() {
        println name() + " | now > : >>" + System.currentTimeMillis()
    }

    @Override
    void interrupt() {
        println "over"
    }
}

Затем создайте класс запуска (например, AppRunner):

public class AppRunner {

    // main 
    public static void main(String[] args) throws Exception {
        new ScriptExecuteEngine().run("/tmp/script/");
        Thread.sleep(24 *60 * 60 * 1000);
    }
    
    // junit 
    @Test
    public void testTaskRun() {
        new ScriptExecuteEngine().run("/tmp/script/");
        Thread.sleep(24 *60 * 60 * 1000);
    }
}
c. Тестирование

После запуска приложения вы можете:

  • изменить содержимое скрипта /tmp/script/DemoScript.groovy, сохранить изменения и проверить, был ли старый скрипт закрыт и запущен новый;
  • добавить новые скрипты в каталог /tmp/script;
  • удалить скрипты из каталога /tmp/script;
  • протестировать работу системы при возникновении ошибок (например, при наличии недопустимого скрипта Groovy или внутренних ошибок).

Обратите внимание, что не следует использовать команду System.exit(1) в скриптах Groovy, так как это приведёт к остановке всего приложения.

II. Принцип работы

Структура проекта проста и включает несколько основных компонентов:

  • Task: конкретные задачи, представленные в виде скриптов.
  • TaskContainer: контейнер, который содержит выполнение задач.
  • TaskChangeWatcher: наблюдатель за задачами, отслеживающий появление новых, удаление или изменение существующих задач, чтобы заменить старые задачи новыми и выполнить их.

Также предусмотрена возможность расширения функциональности через плагины, которые пока не реализованы. Если проект будет интегрирован в экосистему Spring, то поддержка плагинов будет значительно упрощена.

Плагины могут включать:

  • RedisTemplate;
  • RestTemplate;
  • AmqpTemplate;
  • xxxTemplate.

III. Прочее

0. Связанные статьи

Статьи, связанные с техническими аспектами:

Статьи о проекте Quick-Task:

  1. Блог одного серого (One Grey Blog): https://liuyueyi.github.io/hexblog

Блог одного серого — это личный блог, в котором публикуются все статьи об учёбе и работе. Приглашаем всех посетить его.

  1. Заявление

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

— Адрес в Weibo: Блог одного серого. — QQ: один серый / 3302797840. — WeChat: один серый / liuyueyi25.

  1. Сканирование для подписки

На общедоступный аккаунт и блог.

QrCode

Код оплаты:

pay

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

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

Введение

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

Обновления

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

Участники

все

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

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