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

Side by Side Diff: service/taskqueue/types.go

Issue 1243323002: Refactor a bit. (Closed) Base URL: https://github.com/luci/gae.git@master
Patch Set: fix golint Created 5 years, 5 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 | « service/taskqueue/testable.go ('k') | service_test.go » ('j') | 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 // This file contains types which are mirrors/duplicates of the upstream SDK 5 // This file contains types which are mirrors/duplicates of the upstream SDK
6 // types. This exists so that users can depend solely on this wrapper library 6 // types. This exists so that users can depend solely on this wrapper library
7 // without necessarially needing an SDK implementation present. 7 // without necessarially needing an SDK implementation present.
8 // 8 //
9 // This was done (instead of type-aliasing from the github version of the SDK) 9 // This was done (instead of type-aliasing from the github version of the SDK)
10 // because some of the types need to be tweaked (like TQTask.RetryOptions) to 10 // because some of the types need to be tweaked (like Task.RetryOptions) to
11 // interact well with the wrapper, and the inconsistency of having some types 11 // interact well with the wrapper, and the inconsistency of having some types
12 // defined by the gae package and others defined by the SDK was pretty awkward. 12 // defined by the gae package and others defined by the SDK was pretty awkward.
13 13
14 package gae 14 package taskqueue
15 15
16 import ( 16 import (
17 "net/http" 17 "net/http"
18 "time" 18 "time"
19 ) 19 )
20 20
21 // DSByteString is a short byte slice (up to 1500 bytes) that can be indexed. 21 // Statistics represents statistics about a single task queue.
22 type DSByteString []byte 22 type Statistics struct {
23
24 // BSKey is a key for a blobstore blob.
25 //
26 // Conceptually, this type belongs in the blobstore package, but it lives in the
27 // appengine package to avoid a circular dependency: blobstore depends on
28 // datastore, and datastore needs to refer to the BSKey type.
29 //
30 // Blobstore is NOT YET supported by gae, but may be supported later. Its
31 // inclusion here is so that the RawDatastore can interact (and round-trip)
32 // correctly with other datastore API implementations.
33 type BSKey string
34
35 // DSGeoPoint represents a location as latitude/longitude in degrees.
36 //
37 // You probably shouldn't use these, but their inclusion here is so that the
38 // RawDatastore can interact (and round-trip) correctly with other datastore API
39 // implementations.
40 type DSGeoPoint struct {
41 » Lat, Lng float64
42 }
43
44 // Valid returns whether a DSGeoPoint is within [-90, 90] latitude and [-180,
45 // 180] longitude.
46 func (g DSGeoPoint) Valid() bool {
47 » return -90 <= g.Lat && g.Lat <= 90 && -180 <= g.Lng && g.Lng <= 180
48 }
49
50 // DSTransactionOptions are the options for running a transaction.
51 type DSTransactionOptions struct {
52 » // XG is whether the transaction can cross multiple entity groups. In
53 » // comparison, a single group transaction is one where all datastore key s
54 » // used have the same root key. Note that cross group transactions do no t
55 » // have the same behavior as single group transactions. In particular, i t
56 » // is much more likely to see partially applied transactions in differen t
57 » // entity groups, in global queries.
58 » // It is valid to set XG to true even if the transaction is within a
59 » // single entity group.
60 » XG bool
61 » // Attempts controls the number of retries to perform when commits fail
62 » // due to a conflicting transaction. If omitted, it defaults to 3.
63 » Attempts int
64 }
65
66 // MCStatistics represents a set of statistics about the memcache cache. This
67 // may include items that have expired but have not yet been removed from the
68 // cache.
69 type MCStatistics struct {
70 » Hits uint64 // Counter of cache hits
71 » Misses uint64 // Counter of cache misses
72 » ByteHits uint64 // Counter of bytes transferred for gets
73
74 » Items uint64 // Items currently in the cache
75 » Bytes uint64 // Size of all items currently in the cache
76
77 » Oldest int64 // Age of access of the oldest item, in seconds
78 }
79
80 // TQStatistics represents statistics about a single task queue.
81 type TQStatistics struct {
82 Tasks int // may be an approximation 23 Tasks int // may be an approximation
83 OldestETA time.Time // zero if there are no pending tasks 24 OldestETA time.Time // zero if there are no pending tasks
84 25
85 Executed1Minute int // tasks executed in the last minute 26 Executed1Minute int // tasks executed in the last minute
86 InFlight int // tasks executing now 27 InFlight int // tasks executing now
87 EnforcedRate float64 // requests per second 28 EnforcedRate float64 // requests per second
88 } 29 }
89 30
90 // TQRetryOptions let you control whether to retry a task and the backoff interv als between tries. 31 // RetryOptions let you control whether to retry a task and the backoff interval s between tries.
91 type TQRetryOptions struct { 32 type RetryOptions struct {
92 // Number of tries/leases after which the task fails permanently and is deleted. 33 // Number of tries/leases after which the task fails permanently and is deleted.
93 // If AgeLimit is also set, both limits must be exceeded for the task to fail permanently. 34 // If AgeLimit is also set, both limits must be exceeded for the task to fail permanently.
94 RetryLimit int32 35 RetryLimit int32
95 36
96 // Maximum time allowed since the task's first try before the task fails permanently and is deleted (only for push tasks). 37 // Maximum time allowed since the task's first try before the task fails permanently and is deleted (only for push tasks).
97 // If RetryLimit is also set, both limits must be exceeded for the task to fail permanently. 38 // If RetryLimit is also set, both limits must be exceeded for the task to fail permanently.
98 AgeLimit time.Duration 39 AgeLimit time.Duration
99 40
100 // Minimum time between successive tries (only for push tasks). 41 // Minimum time between successive tries (only for push tasks).
101 MinBackoff time.Duration 42 MinBackoff time.Duration
102 43
103 // Maximum time between successive tries (only for push tasks). 44 // Maximum time between successive tries (only for push tasks).
104 MaxBackoff time.Duration 45 MaxBackoff time.Duration
105 46
106 // Maximum number of times to double the interval between successive tri es before the intervals increase linearly (only for push tasks). 47 // Maximum number of times to double the interval between successive tri es before the intervals increase linearly (only for push tasks).
107 MaxDoublings int32 48 MaxDoublings int32
108 49
109 // If MaxDoublings is zero, set ApplyZeroMaxDoublings to true to overrid e the default non-zero value. 50 // If MaxDoublings is zero, set ApplyZeroMaxDoublings to true to overrid e the default non-zero value.
110 // Otherwise a zero MaxDoublings is ignored and the default is used. 51 // Otherwise a zero MaxDoublings is ignored and the default is used.
111 ApplyZeroMaxDoublings bool 52 ApplyZeroMaxDoublings bool
112 } 53 }
113 54
114 // TQTask represents a taskqueue task to be executed. 55 // Task represents a taskqueue task to be executed.
115 type TQTask struct { 56 type Task struct {
116 // Path is the worker URL for the task. 57 // Path is the worker URL for the task.
117 // If unset, it will default to /_ah/queue/<queue_name>. 58 // If unset, it will default to /_ah/queue/<queue_name>.
118 Path string 59 Path string
119 60
120 // Payload is the data for the task. 61 // Payload is the data for the task.
121 // This will be delivered as the HTTP request body. 62 // This will be delivered as the HTTP request body.
122 // It is only used when Method is POST, PUT or PULL. 63 // It is only used when Method is POST, PUT or PULL.
123 // url.Values' Encode method may be used to generate this for POST reque sts. 64 // url.Values' Encode method may be used to generate this for POST reque sts.
124 Payload []byte 65 Payload []byte
125 66
(...skipping 21 matching lines...) Expand all
147 // Either Delay or ETA may be set, but not both. 88 // Either Delay or ETA may be set, but not both.
148 ETA time.Time 89 ETA time.Time
149 90
150 // The number of times the task has been dispatched or leased. 91 // The number of times the task has been dispatched or leased.
151 RetryCount int32 92 RetryCount int32
152 93
153 // Tag for the task. Only used when Method is PULL. 94 // Tag for the task. Only used when Method is PULL.
154 Tag string 95 Tag string
155 96
156 // Retry options for this task. May be nil. 97 // Retry options for this task. May be nil.
157 » RetryOptions *TQRetryOptions 98 » RetryOptions *RetryOptions
158 } 99 }
159
160 // GICertificate represents a public certificate for the app.
161 type GICertificate struct {
162 KeyName string
163 Data []byte // PEM-encoded X.509 certificate
164 }
OLDNEW
« no previous file with comments | « service/taskqueue/testable.go ('k') | service_test.go » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698