{"@context":"https://w3id.org/codemeta/3.0","@type":"SoftwareSourceCode","identifier":"pkg:golang/github.com/cloudchacho/taskhawk-go","name":"github.com/cloudchacho/taskhawk-go","description":"Package taskhawk is a replacement for celery that works on AWS and GCP, while keeping things pretty simple and straight\nforward. Any unbound function can be converted into a Taskhawk task.\n\nFor inter-service messaging, see Hedwig: https://cloudchacho.github.io/hedwig/.\n\nTaskhawk works on SQS or Pub/Sub as backing queues. Before you can publish tasks,\nyou need to provision the required infra. This may be done manually, or, preferably,\nusing Terraform. Taskhawk provides tools to make infra configuration easier: see\nTaskhawk Terraform (https://github.com/cloudchacho/terraform-google-taskhawk) for further details.\n\nIf your function takes multiple arguments, convert your function into a \"Task\" as shown here:\n\nTasks may accept input of arbitrary pointer type as long as it's serializable to JSON. Remember to export fields!\n\nThen, define your backend:\n\nBefore the task can be dispatched, it would need to be registered, as shown below.\n\nAnd finally, dispatch your task asynchronously:\n\nIf you want to include a custom header with the message (for example, you can include a request_id field for\ncross-application tracing), you can set it on the input object (HeadersCarrier interface).\n\nIf you want to customize priority, you can do it like so:\n\nTasks are held in SQS queue / Pub/Sub subscription until they're successfully executed, or until they fail a\nconfigurable number of times. Failed tasks are moved to a Dead Letter Queue, where they're\nheld for 14 days, and may be examined for further debugging.\n\nTaskhawk provides 4 priority queues to use, which may be customized per task, or per message.\nFor more details, see https://godoc.org/github.com/cloudchacho/taskhawk-go/taskhawk#Priority.\n\nIf your input struct satisfies `taskhawk.MetadataSetter` interface, it'll be filled in with the following attributes:\n\nid: task identifier. This represents a run of a task.\n\npriority: the priority this task message was dispatched with.\n\nreceipt: SQS receipt for the task. This may be used to extend message visibility if the task is running longer than\nexpected.\n\ntimestamp: task dispatch epoch timestamp\n\nversion: message format version.\n\nIf your input struct satisfies HeadersCarrier interface, it'll be filled with custom Taskhawk that the task\nwas dispatched with.\n\nFor a compile-time type assertion check, you may add (in global scope):\n\nThis snippet won't consume memory or do anything at runtime.\n\nconsumer\n\nA consumer for workers can be started as following:\n\nThis is a blocking function, so if you want to listen to multiple priority queues,\nyou'll need to run these on separate goroutines.\n\nFor more complete code, see examples.","version":"v0.2.0","softwareVersion":"v0.2.0","license":"https://spdx.org/licenses/Apache-2.0","codeRepository":"https://github.com/cloudchacho/taskhawk-go","issueTracker":"https://github.com/cloudchacho/taskhawk-go/issues","url":"https://github.com/cloudchacho/taskhawk-go","programmingLanguage":{"@type":"ComputerLanguage","name":"Go"},"dateCreated":"2021-07-06","dateModified":"2022-04-19","datePublished":"2022-04-19","copyrightYear":2021,"downloadUrl":"https://proxy.golang.org/github.com/cloudchacho/taskhawk-go/@v/v0.2.0.zip","softwareHelp":{"@type":"WebSite","url":"https://pkg.go.dev/github.com/cloudchacho/taskhawk-go#section-documentation"},"applicationCategory":"go","runtimePlatform":"go","developmentStatus":"active","sameAs":["https://pkg.go.dev/github.com/cloudchacho/taskhawk-go"]}