В некоторых случаях нам может потребоваться периодически обрабатывать некоторые задачи. Нам нужно написать код на стороне сервера, чтобы он работал циклически, например, проверять онлайн-статус клиента, регулярно получать данные интерфейса и т. д. В одной системе может существовать множество различных типов задач, которые необходимо разрабатывать и поддерживать разработчикам.
GTask поддерживает удалённое управление задачами, выполнение задач скриптов (в настоящее время поддерживается только Lua), разработчики могут создавать экземпляры задач и добавлять обработчики для экземпляров. Конфигурируя выполнение скрипта в обработчике, можно легко управлять задачами.
./build/linux.sh
./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 |
Используйте файл конфигурации по умолчанию и запустите сервер на локальном компьютере (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
>
// Имя функции должно быть 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
Функция | Параметр | Возвращаемое значение | Описание |
---|---|---|---|
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 | Получить текущее время в миллисекундах |
Функция | Параметр | Возвращаемое значение | Описание |
---|---|---|---|
jsonMarshal | table | string | Преобразовать таблицу в строку json |
jsonUnMarshal | string | table | Преобразовать строку json в таблицу |
Функция | Параметр | Возвращаемое значение | Описание |
---|---|---|---|
httpGet | [url:string header:table] | [res:string ok:bool] | Отправить GET-запрос |
httpPost | [url:string header:table body:string] | [res:string ok:bool] | Отправить POST-запрос |
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )