#GoTasks
Ну, думаю, объяснять не стоит, просто выполните go build
, чтобы начать работу.
Прошедшие компиляцию версии включают: go1.2.1 linux/amd64
, go1.4.2 windows/amd64
.
Я уже более 12 часов без сбоев выполнял Yöntem 15 задач, среди которых были две задачи, запущенные практически мгновенно, система работает очень стабильно.
Выполнение HTTP-задач происходит параллельно, никаких задержек нет. Одна и та же задача при повторном выполнении не будет затронута задержками предыдущей задачи, поэтому убедитесь, что ваш сервер способен выдерживать нагрузку перед использованием программы.
Для логирования используется библиотека https://github.com/donnie4w/go-logger, но я внес了一些更改。
要获取代码,请使用以下命令:
go get git.oschina.net/janpoem/GoTasks
此命令还将下载必要的 go-logger 库到 GOPATH 的 src 目录中。
打开您的 IDE,例如 IntelliJ 或 LiteIDE, 创建以下代码:
package main
import "git.oschina.net/janpoem/GoTasks"
func main() {
GoTasks.TaskServiceStart()
}
然后编译此项目。
#GoTasks
Ну, думаю, объяснять не стоит, просто выполните go build
, чтобы начать работу.
Прошедшие компиляцию версии включают: go1.2.1 linux/amd64
, go1.4.2 windows/amd64
.
Я уже более 12 часов без сбоев выполнял 15 задач, среди которых были две задачи, запущенные практически мгновенно, система работает очень стабильно.
Выполнение HTTP-задач происходит параллельно, никаких задержек нет. Одна и та же задача при повторном выполнении не будет затронута задержками предыдущей задачи, поэтому убедитесь, что ваш сервер способен выдерживать нагрузку перед использованием программы.
Для логирования используется библиотека https://github.com/donnie4w/go-logger, но я внес некоторые изменения.
Чтобы получить код, используйте команду go get
:
go get git.oschina.net/janpoem/GoTasks
Данная команда также скачает необходимую библиотеку go-logger в директорию src GOPATH.
Откройте свой IDE, такой как IDEA или LiteIDE, Создайте следующий код:
package main
import "git.oschina.net/janpoem/GoTasks"
func main() {
GoTasks.TaskServiceStart()
}
Затем скомпилируйте этот проект.## Параметры запуска
./GoTasks --help
Использование ./GoTasks:
-cycle=43200: периодичность перезагрузки задач, секунды
-log-dir=". ": каталог вывода логов
-log-level=1: уровень вывода логов
-show-complete=0: показывать информацию о завершении запроса
-tasks="": список задач
-trace-cycle=600: периодичность вывода информации о состоянии системы, секунды
-test=false: тестовый режим
-console=true: отображение отладочной информации в консоли
-pprof-port=0: порт pprof-сервера, если ноль — не использовать (по умолчанию)
Пример использования команды:
GoTasks -tasks="http://localhost/tasks.json" -cycle=43200
```## Формат файла tasks.json
Вот пример файла tasks.json:
```json
{
"Tasks":[
{
"Name":"kissOschina",
"Url":"http://www.oschina.net/",
"Cycle":1,
"PostUrl":"",
"Delay":10
},
{
"Name":"kissBaidu",
"Url":"http://www.baidu.com/",
"Cycle":1,
"PostUrl":"",
"EventName":"baiduBack"
}
]
}
Измените go_tasks.sh.```markdown
Для изменения файла sh
, внесите следующие правки в строки с 13 по 35:
Пример запуска:
go_tasks.sh start # Запустить
go_tasks.sh stop # Остановить
go_tasks.sh restart # Перезапустить
go_tasks.sh status # Проверить состояние
go_tasks.sh proc # Просмотреть конкретные процессы
На данный момент поддерживаются однопоточные выполнения. Для запуска нескольких процессов рекомендуется создать несколько наборов исполняемых файлов и скриптов запуска.
На основе примера tasks.json
предоставляются два входа событий:
package main
import (
"github.com/janpoem/gotasks"
"github.com/janpoem/go-logger"
)
``````go
func main() {
defer gotasks.TaskServiceStart()
// Обработка ответа на запрос URL
gotasks.On("get:kissOschina", func(resp string) {
fmt.Println(resp.Name) // Вывод имени kissOschina
})
// Вызов события после завершения POST запроса
gotasks.On("get:baiduBack", func(resp string) {
})
}
2015-05-04
2015-03-26
http://localhost:порт/debug/pprof/
.Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )