Skip to content
Snippets Groups Projects
Commit ee80770d authored by Pavel Antonov's avatar Pavel Antonov :asterisk:
Browse files

Merge branch 'feature/PRXS-1465-QueueComments' into 'master'

Добавлены комментарии по работе очереди. Исправлены опечатки в коде expr

See merge request perxis/perxis-go!77
parents dc3e8386 b779fc67
No related branches found
No related tags found
No related merge requests found
package expr package expr
const (
Unknown uint8 = iota
String
Int
Float
)
func init() { func init() {
RegisterOption( RegisterOption(
Extend("In", In), Extend("In", In),
...@@ -23,11 +16,11 @@ func In(v1, v2 interface{}) bool { ...@@ -23,11 +16,11 @@ func In(v1, v2 interface{}) bool {
switch { switch {
case ok1 && ok2: case ok1 && ok2:
return sliceInSlice1(s1, s2) return sliceInSlice(s1, s2)
case ok1 && !ok2: case ok1 && !ok2:
return valueInSlice1(v2, s1) return valueInSlice(v2, s1)
case !ok1 && ok2: case !ok1 && ok2:
return valueInSlice1(v1, s2) return valueInSlice(v1, s2)
case !ok1 && !ok2: case !ok1 && !ok2:
return v1 == v2 return v1 == v2
} }
...@@ -35,16 +28,16 @@ func In(v1, v2 interface{}) bool { ...@@ -35,16 +28,16 @@ func In(v1, v2 interface{}) bool {
return false return false
} }
func sliceInSlice1(s1, s2 []interface{}) bool { func sliceInSlice(s1, s2 []interface{}) bool {
for _, v1 := range s1 { for _, v1 := range s1 {
if valueInSlice1(v1, s2) { if valueInSlice(v1, s2) {
return true return true
} }
} }
return false return false
} }
func valueInSlice1(v interface{}, s []interface{}) bool { func valueInSlice(v interface{}, s []interface{}) bool {
for _, e := range s { for _, e := range s {
if e == v { if e == v {
return true return true
......
...@@ -40,6 +40,10 @@ func (g *JobGroup) Wait() { ...@@ -40,6 +40,10 @@ func (g *JobGroup) Wait() {
g.wg.Wait() g.wg.Wait()
} }
// Queue предназначена для постановки в очередь и выполнения задач с соблюдением
// максимально возможного числа одновременно выполняемых задач (по умолчанию число
// логических CPU). Каждой задаче присваивается идентификатор, по которому можно
// получить результат выполнения задачи.
type Queue struct { type Queue struct {
jobsCh chan Job jobsCh chan Job
results sync.Map results sync.Map
...@@ -50,6 +54,10 @@ type Queue struct { ...@@ -50,6 +54,10 @@ type Queue struct {
Size int Size int
} }
// AddJob - добавить задачу в очередь на обработку. В случае, если в очереди скопилось задач
// больше, чем defaultSize, вернется ошибка и задача не будет добавлена. Каждой задаче
// присваивается идентификатор, по которому можно получить результат выполнения задачи. Все результаты
// доступны в течение часа после завершения выполнения задачи.
func (j *Queue) AddJob(job Job) (jobID string, err error) { func (j *Queue) AddJob(job Job) (jobID string, err error) {
if j == nil { if j == nil {
return return
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment