Skip to content

Commit

Permalink
Косметические правки коментариев.
Browse files Browse the repository at this point in the history
  • Loading branch information
monoflash committed Jun 26, 2022
1 parent e7767c5 commit 93f98d4
Show file tree
Hide file tree
Showing 32 changed files with 342 additions and 341 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@ _dev
/storage
/tmp
/rpmbuild
/src

# Architecture specific extensions/prefixes
*.[568vq]
Expand Down
8 changes: 4 additions & 4 deletions .testpackages
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
gopkg.in/webnice/job.v1/event
gopkg.in/webnice/job.v1/pool
gopkg.in/webnice/job.v1/types
gopkg.in/webnice/job.v1/job
github.com/webnice/job/v2/event
github.com/webnice/job/v2/pool
github.com/webnice/job/v2/types
github.com/webnice/job/v2/job
4 changes: 2 additions & 2 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ language: go

install:
- go get github.com/mattn/goveralls
- go get gopkg.in/webnice/debug.v1
- go get gopkg.in/webnice/log.v2
- go get github.com/webnice/debug.v1
- go get github.com/webnice/lv2

script:
- make test
Expand Down
31 changes: 16 additions & 15 deletions Makefile
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
DIR=$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))))
DIR =$(strip $(shell dirname $(realpath $(lastword $(MAKEFILE_LIST)))))

GOPATH := $(GOPATH)
DATE=$(shell date -u +%Y%m%d.%H%M%S.%Z)
TESTPACKETS=$(shell if [ -f .testpackages ]; then cat .testpackages; fi)
BENCHPACKETS=$(shell if [ -f .benchpackages ]; then cat .benchpackages; fi)
GOPATH := $(GOPATH)
DATE =$(shell date -u +%Y%m%d.%H%M%S.%Z)
TESTPACKETS =$(shell if [ -f .testpackages ]; then cat .testpackages; fi)
BENCHPACKETS =$(shell if [ -f .benchpackages ]; then cat .benchpackages; fi)

default: lint test

dep:
@GO111MODULE=on GOSUMDB=off GOPROXY=direct GOPRIVATE="git.webdesk.ru" go get -u ./...
@GO111MODULE=on GOSUMDB=off GOPROXY=direct GOPRIVATE="git.webdesk.ru" go mod download
@GO111MODULE=on GOSUMDB=off GOPROXY=direct GOPRIVATE="git.webdesk.ru" go mod tidy
@GO111MODULE=on GOSUMDB=off GOPROXY=direct GOPRIVATE="git.webdesk.ru" go mod vendor
@go get -u ./...
@go mod download
@go mod tidy
@go mod vendor
.PHONY: dep

link:
Expand All @@ -21,26 +21,26 @@ link:
@if [ ! -L $(DIR)/src/pool ]; then ln -s $(DIR)/pool $(DIR)/src/pool 2>/dev/null; fi
@if [ ! -L $(DIR)/src/types ]; then ln -s $(DIR)/types $(DIR)/src/types 2>/dev/null; fi
@if [ ! -L $(DIR)/src/event ]; then ln -s $(DIR)/event $(DIR)/src/event 2>/dev/null; fi
@cd ${DIR}/src && ln -s . gopkg.in 2>/dev/null; true
@cd ${DIR}/src && ln -s . github.com 2>/dev/null; true
@cd ${DIR}/src && ln -s . webnice 2>/dev/null; true
@cd ${DIR}/src && ln -s . job.v1 2>/dev/null; true
@if command -v "gvt" >/dev/null; then cd ${DIR}/src; GOPATH="$(DIR)" gvt fetch -branch v2 "gopkg.in/webnice/log.v2" 2>/dev/null; true; fi
@if command -v "gvt" >/dev/null; then cd ${DIR}/src; GOPATH="$(DIR)" gvt fetch -branch v1 "gopkg.in/webnice/debug.v1" 2>/dev/null; true; fi
@cd ${DIR}/src && ln -s . job 2>/dev/null; true
@if command -v "gvt" >/dev/null; then cd ${DIR}/src; GOPATH="$(DIR)" gvt fetch -branch v2 "github.com/webnice/lv2" 2>/dev/null; true; fi
@if command -v "gvt" >/dev/null; then cd ${DIR}/src; GOPATH="$(DIR)" gvt fetch -branch v1 "github.com/webnice/debug" 2>/dev/null; true; fi
.PHONY: link

test: link
@echo "mode: set" > $(DIR)/coverage.log
@for PACKET in $(TESTPACKETS); do \
touch $(DIR)/coverage-tmp.log; \
GOPATH=${GOPATH} go test -v -covermode=count -coverprofile=$(DIR)/coverage-tmp.log $$PACKET; \
go test -v -covermode=count -coverprofile=$(DIR)/coverage-tmp.log $$PACKET; \
if [ "$$?" -ne "0" ]; then exit $$?; fi; \
tail -n +2 $(DIR)/coverage-tmp.log | sort -r | awk '{if($$1 != last) {print $$0;last=$$1}}' >> $(DIR)/coverage.log; \
rm -f $(DIR)/coverage-tmp.log; true; \
done
.PHONY: test

cover: test
GOPATH=${GOPATH} go tool cover -html=$(DIR)/coverage.log
@go tool cover -html=$(DIR)/coverage.log
@make clean
.PHONY: cover

Expand All @@ -62,6 +62,7 @@ lint: link

clean:
@echo "cleaning..."
@go clean -cache -modcache
@rm -rf ${DIR}/src; true
@rm -rf ${DIR}/bin/*; true
@rm -rf ${DIR}/pkg/*; true
Expand Down
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# job

[![GoDoc](https://godoc.org/gopkg.in/webnice/job.v1/job?status.svg)](https://godoc.org/gopkg.in/webnice/job.v1/job)
[![GoDoc](https://godoc.org/github.com/webnice/job/v2/job?status.svg)](https://godoc.org/github.com/webnice/job/v2/job)
[![Go Report Card](https://goreportcard.com/badge/github.com/webnice/job)](https://goreportcard.com/report/github.com/webnice/job)
[![Coverage Status](https://coveralls.io/repos/github/webnice/job/badge.svg?branch=v1)](https://coveralls.io/github/webnice/job?branch=v1)
[![Build Status](https://travis-ci.org/webnice/job.svg?branch=v1)](https://travis-ci.org/webnice/job)
Expand Down
18 changes: 9 additions & 9 deletions event/constants.go
Original file line number Diff line number Diff line change
@@ -1,27 +1,27 @@
package event

const (
// ECancel Событие остановки всех запущенных процессов
// ECancel Событие остановки всех запущенных процессов.
ECancel = Operation(`Cancel`)

// ERestartProcess Событие перезапуска процесса завершившегося без ошибки
// ERestartProcess Событие перезапуска процесса завершившегося без ошибки.
ERestartProcess = Operation(`Restart process`)

// EProcessFatality Произошла фатальная ошибка, продолжение работы не возможно
// EProcessFatality Произошла фатальная ошибка, продолжение работы невозможно.
EProcessFatality = Operation(`A fatal error has occurred, the continuation of the work is not possible`)

// EOnError Событие ошибки
// EOnError Событие ошибки.
EOnError = Operation(`Process ends with error`)

// ECancelError Вызов Cancel() завершился ошибкой
// ECancelError Вызов Cancel() завершился ошибкой.
ECancelError = Operation(`Call cancel function ends with error`)

// EProcessStarted Событие запуска процесса
// EProcessStarted Событие запуска процесса.
EProcessStarted = Operation(`Process has started successfully`)

// EProcessStoped Событие остановки процесса
EProcessStoped = Operation(`Process has stopped successfully`)
// EProcessStopped Событие остановки процесса.
EProcessStopped = Operation(`Process has stopped successfully`)

// EStartProcess Событие запуска процесса
// EStartProcess Событие запуска процесса.
EStartProcess = Operation(`Start process`)
)
12 changes: 6 additions & 6 deletions event/types.go
Original file line number Diff line number Diff line change
@@ -1,19 +1,19 @@
package event

// Event Событие
// Event Событие.
type Event struct {
// SourceID Идентификатор процесса создавшего событие
// SourceID Идентификатор процесса создавшего событие.
SourceID string

// TargetID Идентификатор процесса назначения события, если пусто - все процессы
// TargetID Идентификатор процесса назначения события, если пусто - все процессы.
TargetID string

// Act Действие которое необходимо выполнить, либо произошедная смена состояния
// Act Действие которое необходимо выполнить, либо произошедшая смена состояния.
Act Operation

// Err Событие ошибки
// Err Событие ошибки.
Err error
}

// Operation type
// Operation type.
type Operation string
2 changes: 1 addition & 1 deletion go.mod
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
module github.com/webnice/job/v2

go 1.15
go 1.18
2 changes: 0 additions & 2 deletions go.sum
Original file line number Diff line number Diff line change
@@ -1,2 +0,0 @@
github.com/webnice/lv2 v0.0.0-20201212082251-996f95a7bf70 h1:/QcqM1hAVFj8yPgXkseyWZ+iMn0noLY7KPS6kEvvT5c=
github.com/webnice/lv2 v0.0.0-20201212082251-996f95a7bf70/go.mod h1:Gm8zgr40Vks7dYY1VIXLoIYFf3yqpchAA5fHnAODt5k=
42 changes: 21 additions & 21 deletions job/do.go
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,11 @@ import (
"container/list"
"sort"

jobEvent "github.com/webnice/job/event"
jobTypes "github.com/webnice/job/types"
jobEvent "github.com/webnice/job/v2/event"
jobTypes "github.com/webnice/job/v2/types"
)

// Запрос конфигурации всех процессов
// Запрос конфигурации всех процессов.
func (jbo *impl) getConfiguration() (err error) {
var (
cfg *jobTypes.Configuration
Expand All @@ -31,7 +31,7 @@ func (jbo *impl) getConfiguration() (err error) {
return
}

// Составление списка процессов в соответствии с приоритетами запуска и остановки
// Составление списка процессов в соответствии с приоритетами запуска и остановки.
func (jbo *impl) priority() {
type plist struct {
Start int32
Expand Down Expand Up @@ -60,32 +60,32 @@ func (jbo *impl) priority() {
}); jbo.err != nil {
return
}
// В порядке старта
// В порядке старта.
sort.Slice(pst, func(i int, j int) bool { return pst[i].Start < pst[j].Start })
jbo.StartPriority = make([]string, len(pst))
for n = range pst {
jbo.StartPriority[n] = pst[n].ID
}
// В порядке остановки
// В порядке остановки.
sort.Slice(pst, func(i int, j int) bool { return pst[i].Stop < pst[j].Stop })
jbo.StopPriority = make([]string, len(pst))
for n = range pst {
jbo.StopPriority[n] = pst[n].ID
}
}

// Do Запуск библиотеки, подготовка и запуск процессов с флагом Autostart
// Ошибка возвращается в случае наличия фатальной ошибки из за которой продолжение работы не возможно
// Do Запуск библиотеки, подготовка и запуск процессов с флагом Autostart.
// Ошибка возвращается в случае наличия фатальной ошибки, из-за которой продолжение работы невозможно.
func (jbo *impl) Do() (err error) {
var tp jobTypes.Type

// Запрос конфигурации всех процессов
// Запрос конфигурации всех процессов.
if err = safeCall(jbo.getConfiguration); err != nil {
return
}
// Составление списка процессов в соответствии с приоритетами запуска и остановки
// Составление списка процессов в соответствии с приоритетами запуска и остановки.
jbo.priority()
// Запуск процессов с флагом Autostart в порядке приоритета
// Запуск процессов с флагом Autostart в порядке приоритета.
for _, tp = range []jobTypes.Type{
jobTypes.TypeForkWorker, jobTypes.TypeWorker, jobTypes.TypeTask} {
if err = jbo.StartByType(tp); err != nil {
Expand All @@ -96,7 +96,7 @@ func (jbo *impl) Do() (err error) {
return
}

// Start Отправка команды запуска процесса
// Start Отправка команды запуска процесса.
func (jbo *impl) Start(id string) (err error) {
var prc *Process

Expand All @@ -117,7 +117,7 @@ func (jbo *impl) Start(id string) (err error) {
return
}

// StartByType Запуск процессов определённого типа в соответствии с очерёдностью запуска
// StartByType Запуск процессов определённого типа в соответствии с очерёдностью запуска.
func (jbo *impl) StartByType(tp jobTypes.Type) (err error) {
var (
prc *Process
Expand All @@ -131,25 +131,25 @@ func (jbo *impl) StartByType(tp jobTypes.Type) (err error) {
if err != nil && err != jbo.Errors().ProcessNotFound() {
return
}
// Процесс не найден или не совпадает тип
// Процесс не найден или не совпадает тип.
if err != nil || prc != nil && prc.Type != tp {
continue
}
if st, err = prc.State(); err != nil {
return
}
// Пропускаем всех с выключенным автостартом
// Пропускаем всех с выключенным автостартом.
if !st.Conf.Autostart {
continue
}
// Пропускаем уже запущенные
// Пропускаем уже запущенные.
if isRun, err = prc.IsRun(); err != nil {
return
}
if isRun {
continue
}
// Запуск процесса
// Запуск процесса.
switch wrk := prc.P.(type) {
case *jobTypes.Task:
err = jbo.runTask(wrk)
Expand All @@ -168,10 +168,10 @@ func (jbo *impl) StartByType(tp jobTypes.Type) (err error) {

// IsCancelled Проверка состояния прерывания работы. Если передан не пустой id,
// тогда проверяется состояние для процесса, если передан пустой, то проверяется общее состояние для всех процессов.
// Истина - выполняется прерывание работы
// Ложь - разрешено нормальное выполнение процессов
// Истина - выполняется прерывание работы.
// Ложь - разрешено нормальное выполнение процессов.
func (jbo *impl) IsCancelled(id string) bool { return jbo.Exit.Load().(bool) }

// Cancel Сигнал завершения всех запущенных процессов
// Сигнал будет так же передан в подпроцессы запущенные как ForkWorker
// Cancel Сигнал завершения всех запущенных процессов.
// Сигнал будет так же передан в подпроцессы запущенные как ForkWorker.
func (jbo *impl) Cancel() { jbo.Event <- &jobEvent.Event{Act: jobEvent.ECancel} }
28 changes: 14 additions & 14 deletions job/errors.go
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package job

// Все ошибки определены как константы
// Все ошибки определены как константы.
const (
cUnexpectedError = "Unexpected error"
cNotImplemented = "Not implemented"
Expand All @@ -13,7 +13,7 @@ const (
cProcessNotFound = "Process not found"
)

// Константы указаны в объектах, адрес которых фиксирован всё время работы приложения
// Константы указаны в объектах, адрес которых фиксирован всё время работы приложения.
// Ошибку с ошибкой можно сравнивать по телу, по адресу и т.п.
var (
errSingleton = &Error{}
Expand All @@ -29,42 +29,42 @@ var (
)

type (
// Error object of package
// Error object of package.
Error struct{}
err string
)

// Error The error built-in interface implementation
// Error The error built-in interface implementation.
func (e err) Error() string { return string(e) }

// Errors Все ошибки известного состояния, которые могут вернуть функции пакета
// Errors Все ошибки известного состояния, которые могут вернуть функции пакета.
func Errors() *Error { return errSingleton }

// ERRORS:

// UnexpectedError Unexpected error
// UnexpectedError Unexpected error.
func (e *Error) UnexpectedError() error { return &errUnexpectedError }

// NotImplemented Not implemented
// NotImplemented Not implemented.
func (e *Error) NotImplemented() error { return &errNotImplemented }

// TypeNotImplemented Type of process is not implemented
// TypeNotImplemented Type of process is not implemented.
func (e *Error) TypeNotImplemented() error { return &errTypeNotImplemented }

// UnregisterProcessIsRunning The process is current running, you must first stop the process
// UnregisterProcessIsRunning The process is current running, you must first stop the process.
func (e *Error) UnregisterProcessIsRunning() error { return &errUnregisterProcessIsRunning }

// RegisteredProcessNotFound Registered process with the specified identifier was not found
// RegisteredProcessNotFound Registered process with the specified identifier was not found.
func (e *Error) RegisteredProcessNotFound() error { return &errRegisteredProcessNotFound }

// DeadlineExceeded Deadline exceeded
// DeadlineExceeded Deadline exceeded.
func (e *Error) DeadlineExceeded() error { return &errDeadlineExceeded }

// ProcessesAreStillRunning One or more processes are still running
// ProcessesAreStillRunning One or more processes are still running.
func (e *Error) ProcessesAreStillRunning() error { return &errProcessesAreStillRunning }

// ProcessAlreadyRunning Process already running
// ProcessAlreadyRunning Process already running.
func (e *Error) ProcessAlreadyRunning() error { return &errProcessAlreadyRunning }

// ProcessNotFound Process not found
// ProcessNotFound Process not found.
func (e *Error) ProcessNotFound() error { return &errProcessNotFound }
Loading

0 comments on commit 93f98d4

Please sign in to comment.