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

OSCHINA-MIRROR/janpoem-GoTasks

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

#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"
		}
	]
}
  • Name – имя задачи
  • Url – URL для получения данных
  • Cycle – циклический интервал выполнения задачи, секунды
  • PostUrl – URL для отправки полученного содержимого страницы
  • Delay – задержка начала первой задачи, секунды; вторая и последующие задачи выполняются с нормальным интервалом
  • EventName – событие, которое вызывается после выполнения задачи; можно выбрать либо имя задачи, либо имя события

Размещение на Linux-сервере

Измените go_tasks.sh.```markdown

Изменение файла sh

Для изменения файла sh, внесите следующие правки в строки с 13 по 35:

  • DAEMON: путь к исполняемому файлу GoTasks
  • TASKS: URL задач

Пример запуска:

go_tasks.sh start    # Запустить
go_tasks.sh stop     # Остановить
go_tasks.sh restart  # Перезапустить
go_tasks.sh status   # Проверить состояние
go_tasks.sh proc     # Просмотреть конкретные процессы

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

Новые события API

На основе примера 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

  • Преобразование функции Prepare для внешнего вызова и ограничение её использования до одного раза.
  • Добавление свойства Delay для задач, которое используется для задержки первого запуска задачи, чтобы снизить нагрузку при первом запуске всех задач. Единицы измерения — секунды. Второй запуск задачи не будет использовать Delay.
  • Добавление свойства EventName для задач, которое используется для определения задачи, которая должна быть запущена при завершении текущей задачи. Можно выбрать между EventName и Name.
  • Добавление свойства Name для TaskResult для получения названия текущей выполняемой задачи.

2015-03-26

  • Перемещение кода логгера за пределы основного кода.
  • Улучшение структуры кода.
  • Добавление сервера pprof для мониторинга состояния памяти и goroutines. Адрес доступа: http://localhost:порт/debug/pprof/.
  • Добавление механизма событий для управления задачами.

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

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

Введение

На основе параллельного сервиса задач, использующего HTTP, также может быть использован для инициирования HTTP-атак. Полностью отсутствуют зависимости от внешних библиотек. Развернуть Свернуть
GPL-2.0
Отмена

Обновления

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

Участники

все

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

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