Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(437)

Side by Side Diff: impl/memory/taskqueue_data.go

Issue 1312433013: Switch to external stringset implementation. (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: fix nitish Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « impl/memory/stringset.go ('k') | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 package memory 5 package memory
6 6
7 import ( 7 import (
8 "errors" 8 "errors"
9 "fmt" 9 "fmt"
10 "net/http" 10 "net/http"
11 "sync" 11 "sync"
12 "sync/atomic" 12 "sync/atomic"
13 13
14 "golang.org/x/net/context" 14 "golang.org/x/net/context"
15 15
16 ds "github.com/luci/gae/service/datastore" 16 ds "github.com/luci/gae/service/datastore"
17 tq "github.com/luci/gae/service/taskqueue" 17 tq "github.com/luci/gae/service/taskqueue"
18 "github.com/luci/luci-go/common/clock" 18 "github.com/luci/luci-go/common/clock"
19 "github.com/luci/luci-go/common/stringset"
19 ) 20 )
20 21
21 var ( 22 var (
22 currentNamespace = http.CanonicalHeaderKey("X-AppEngine-Current-Namespac e") 23 currentNamespace = http.CanonicalHeaderKey("X-AppEngine-Current-Namespac e")
23 defaultNamespace = http.CanonicalHeaderKey("X-AppEngine-Default-Namespac e") 24 defaultNamespace = http.CanonicalHeaderKey("X-AppEngine-Default-Namespac e")
24 ) 25 )
25 26
26 //////////////////////////////// taskQueueData ///////////////////////////////// 27 //////////////////////////////// taskQueueData /////////////////////////////////
27 28
28 type taskQueueData struct { 29 type taskQueueData struct {
(...skipping 91 matching lines...) Expand 10 before | Expand all | Expand 10 after
120 queueName, err := t.getQueueNameLocked(queueName) 121 queueName, err := t.getQueueNameLocked(queueName)
121 if err != nil { 122 if err != nil {
122 return err 123 return err
123 } 124 }
124 125
125 t.named[queueName] = map[string]*tq.Task{} 126 t.named[queueName] = map[string]*tq.Task{}
126 t.archived[queueName] = map[string]*tq.Task{} 127 t.archived[queueName] = map[string]*tq.Task{}
127 return nil 128 return nil
128 } 129 }
129 130
130 var tqOkMethods = stringSet{ 131 var tqOkMethods = stringset.NewFromSlice("GET", "POST", "HEAD", "PUT", "DELETE")
131 » "GET": {},
132 » "POST": {},
133 » "HEAD": {},
134 » "PUT": {},
135 » "DELETE": {},
136 }
137 132
138 func (t *taskQueueData) prepTask(c context.Context, ns string, task *tq.Task, qu eueName string) (*tq.Task, error) { 133 func (t *taskQueueData) prepTask(c context.Context, ns string, task *tq.Task, qu eueName string) (*tq.Task, error) {
139 toSched := task.Duplicate() 134 toSched := task.Duplicate()
140 135
141 if toSched.Path == "" { 136 if toSched.Path == "" {
142 toSched.Path = "/_ah/queue/" + queueName 137 toSched.Path = "/_ah/queue/" + queueName
143 } 138 }
144 139
145 if toSched.ETA.IsZero() { 140 if toSched.ETA.IsZero() {
146 toSched.ETA = clock.Now(c).Add(toSched.Delay) 141 toSched.ETA = clock.Now(c).Add(toSched.Delay)
147 } else if toSched.Delay != 0 { 142 } else if toSched.Delay != 0 {
148 panic("taskqueue: both Delay and ETA are set") 143 panic("taskqueue: both Delay and ETA are set")
149 } 144 }
150 toSched.Delay = 0 145 toSched.Delay = 0
151 146
152 if toSched.Method == "" { 147 if toSched.Method == "" {
153 toSched.Method = "POST" 148 toSched.Method = "POST"
154 } 149 }
155 » if !tqOkMethods.has(toSched.Method) { 150 » if !tqOkMethods.Has(toSched.Method) {
156 return nil, fmt.Errorf("taskqueue: bad method %q", toSched.Metho d) 151 return nil, fmt.Errorf("taskqueue: bad method %q", toSched.Metho d)
157 } 152 }
158 if toSched.Method != "POST" && toSched.Method != "PUT" { 153 if toSched.Method != "POST" && toSched.Method != "PUT" {
159 toSched.Payload = nil 154 toSched.Payload = nil
160 } 155 }
161 156
162 if _, ok := toSched.Header[currentNamespace]; !ok { 157 if _, ok := toSched.Header[currentNamespace]; !ok {
163 if ns != "" { 158 if ns != "" {
164 if toSched.Header == nil { 159 if toSched.Header == nil {
165 toSched.Header = http.Header{} 160 toSched.Header = http.Header{}
(...skipping 86 matching lines...) Expand 10 before | Expand all | Expand 10 after
252 return t.parent.GetTombstonedTasks() 247 return t.parent.GetTombstonedTasks()
253 } 248 }
254 249
255 func (t *txnTaskQueueData) GetScheduledTasks() tq.QueueData { 250 func (t *txnTaskQueueData) GetScheduledTasks() tq.QueueData {
256 return t.parent.GetScheduledTasks() 251 return t.parent.GetScheduledTasks()
257 } 252 }
258 253
259 func (t *txnTaskQueueData) CreateQueue(queueName string) { 254 func (t *txnTaskQueueData) CreateQueue(queueName string) {
260 t.parent.CreateQueue(queueName) 255 t.parent.CreateQueue(queueName)
261 } 256 }
OLDNEW
« no previous file with comments | « impl/memory/stringset.go ('k') | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698