Skip to content
Snippets Groups Projects
Commit b779fc67 authored by Alena Petraki's avatar Alena Petraki
Browse files

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

parent dc3e8386
No related branches found
No related tags found
No related merge requests found
package expr
const (
Unknown uint8 = iota
String
Int
Float
)
func init() {
RegisterOption(
Extend("In", In),
......@@ -23,11 +16,11 @@ func In(v1, v2 interface{}) bool {
switch {
case ok1 && ok2:
return sliceInSlice1(s1, s2)
return sliceInSlice(s1, s2)
case ok1 && !ok2:
return valueInSlice1(v2, s1)
return valueInSlice(v2, s1)
case !ok1 && ok2:
return valueInSlice1(v1, s2)
return valueInSlice(v1, s2)
case !ok1 && !ok2:
return v1 == v2
}
......@@ -35,16 +28,16 @@ func In(v1, v2 interface{}) bool {
return false
}
func sliceInSlice1(s1, s2 []interface{}) bool {
func sliceInSlice(s1, s2 []interface{}) bool {
for _, v1 := range s1 {
if valueInSlice1(v1, s2) {
if valueInSlice(v1, s2) {
return true
}
}
return false
}
func valueInSlice1(v interface{}, s []interface{}) bool {
func valueInSlice(v interface{}, s []interface{}) bool {
for _, e := range s {
if e == v {
return true
......
......@@ -40,6 +40,10 @@ func (g *JobGroup) Wait() {
g.wg.Wait()
}
// Queue предназначена для постановки в очередь и выполнения задач с соблюдением
// максимально возможного числа одновременно выполняемых задач (по умолчанию число
// логических CPU). Каждой задаче присваивается идентификатор, по которому можно
// получить результат выполнения задачи.
type Queue struct {
jobsCh chan Job
results sync.Map
......@@ -50,6 +54,10 @@ type Queue struct {
Size int
}
// AddJob - добавить задачу в очередь на обработку. В случае, если в очереди скопилось задач
// больше, чем defaultSize, вернется ошибка и задача не будет добавлена. Каждой задаче
// присваивается идентификатор, по которому можно получить результат выполнения задачи. Все результаты
// доступны в течение часа после завершения выполнения задачи.
func (j *Queue) AddJob(job Job) (jobID string, err error) {
if j == nil {
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