| // Copyright 2019 The Go Authors. All rights reserved. |
| // Use of this source code is governed by a BSD-style |
| // license that can be found in the LICENSE file. |
| |
| // Package queue provides a queue interface that can be used for |
| // asynchronous scheduling of fetch actions. |
| package queue |
| |
| import ( |
| "context" |
| ) |
| |
| // A Queue provides an interface for asynchronous scheduling of fetch actions. |
| type Queue interface { |
| ScheduleFetch(ctx context.Context, modulePath, version string, opts *Options) (bool, error) |
| } |
| |
| // Options is used to provide option arguments for a task queue. |
| type Options struct { |
| // DisableProxyFetch reports whether proxyfetch should be set to off when |
| // making a fetch request. |
| DisableProxyFetch bool |
| |
| // Suffix is used to force reprocessing of tasks that would normally be |
| // de-duplicated. It is appended to the task name. |
| Suffix string |
| |
| // Source is the source that requested the task to be queued. It is |
| // either "frontend" or the empty string if it is the worker. |
| Source string |
| } |
| |
| const ( |
| DisableProxyFetchParam = "proxyfetch" |
| DisableProxyFetchValue = "off" |
| SourceParam = "source" |
| SourceFrontendValue = "frontend" |
| SourceWorkerValue = "worker" |
| ) |