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

OSCHINA-MIRROR/GuaikOrg-gtask

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

GTask — система задач

Введение

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

GTask поддерживает удалённое управление задачами, выполнение задач скриптов (в настоящее время поддерживается только Lua), разработчики могут создавать экземпляры задач и добавлять обработчики для экземпляров. Конфигурируя выполнение скрипта в обработчике, можно легко управлять задачами.

Компиляция и использование

Linux

./build/linux.sh

MaxOS

./build/macos.sh

После успешной компиляции в каталоге release будут созданы два файла: gtask и client, которые представляют собой программу сервера и клиентскую программу соответственно.

Запуск сервера

Конфигурация порта прослушивания и ключа аутентификации сервера сохраняется в файле config/config.json. Ключ будет использоваться при подключении клиента к серверу. При запуске сервера необходимо указать параметры конфигурации.

./release/gtask -cfg ./config/config.json

Подключение клиента к серверу

./release/client -h [host] -p 1126

На этом этапе потребуется ввести ключ, который является ключом инициализации сервера.

Документация по интерфейсу сервера

См. документацию по интерфейсу.

Описание команд клиента

Команда Параметр Описание параметра Пример
create job key Ключ задачи create job test
use key Должен быть создан ранее use test
create processor [filePath trigger bReset bLoop bExit] (Необходимо использовать команду use job) [Путь к файлу сценария
Время срабатывания (секунды)
Можно ли сбросить
Циклическое выполнение
Завершение работы] create processor ./example/lua/test_json.lua 3 0 1 0
run (Необходимо использовать команду use job) Запустить задачу run
delete (Необходимо использовать команду use job) Остановить и удалить задачу delete

Демонстрация клиента

test.gif

Тестирование клиента

Используйте файл конфигурации по умолчанию и запустите сервер на локальном компьютере (localhost).

./release/client -h localhost -p 1126
secretKey:647851f2fcf6101aefa4a2c59a329a11c60300a4

# Создание задачи
> create job test
create job [test] success

# Выбор задачи
> use test
select job [test]

# Создать обработчик для задачи, проанализировать json и вывести соответствующие данные, выполнять каждые 3 секунды, циклически выполнять
test > create processor ./example/lua/test_json.lua 3 0 1 0
create processor success

# Запустить задачу
test > run
run job [test] success

# Добавить обработчик к задаче для отправки GET-запроса для получения данных веб-сайта, выполнять каждые 5 секунд, циклически выполнять
test > create processor ./example/lua/test_http_get.lua 5 0 1 0
create processor success

# Остановить и удалить текущую задачу
test > delete
>

Выполнение кода Lua

// Имя функции должно быть processor
// key(string): ключ задачи
// count(number): счётчик времени
function processor(key,count)
    data = {}
    data["hello"]="world"
    data["a"] = {}
    data["a"]["b"] = "b"
    data["a"]["c"] = {1,2,3,4,5,6}
    res = jsonMarshal(data)
    res = jsonUnMarshal(res)
    for k,v in ipairs(res["a"]["c"]) do
        print(k,v)
    end
    return true // Если вернуть false, текущий обработчик завершит работу
end

Функции поддержки Lua

Шифрование

Функция Параметр Возвращаемое значение Описание
md5 string string Получить MD5-значение строки
base64 string string Получить base64-кодировку строки
base64UrlSafe string string Получить url-безопасную base64-кодировку строки
hmac [key:string, str:string] string Получить значение hmac
sha1 string string Получить SHA1-значение строки

Время

Функция Параметр Возвращаемое значение Описание
now number Получить текущее время в миллисекундах

Json

Функция Параметр Возвращаемое значение Описание
jsonMarshal table string Преобразовать таблицу в строку json
jsonUnMarshal string table Преобразовать строку json в таблицу

Http

Функция Параметр Возвращаемое значение Описание
httpGet [url:string header:table] [res:string ok:bool] Отправить GET-запрос
httpPost [url:string header:table body:string] [res:string ok:bool] Отправить POST-запрос

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

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

Введение

Система задач GTask, можно удалённо отправлять сценарии задач на языке Lua. Сценарии поддерживают стандартные методы шифрования, HTTP-запросы, обработку JSON. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

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

Участники

все

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

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