Examples of using task scheduler with Go?

This page summarizes the projects mentioned and recommended in the original post on /r/golang

Our great sponsors
  • WorkOS - The modern identity platform for B2B SaaS
  • InfluxDB - Power Real-Time Data Analytics at Scale
  • SaaSHub - Software Alternatives and Reviews
  • starlark-go

    Starlark in Go: the Starlark configuration language, implemented in Go

  • The big unknown is your task definition: what does user-defined logic look like? If you're expecting go code, that's gonna need some cleverness because of the compiled nature of it. There's a node runtime implemented in go if you want to provide sandboxed javascript (check the source of k6.io, it's the main one I know that uses it). If you want to provide building blocks and let them compose them, starlark might be a good choice.

  • watermill

    Building event-driven applications the easy way in Go.

  • Watermill is a good pubsub abstraction. You can start with native go channels and grow into a cloud pubsub or Kafka/Pulsar if you need to.

  • WorkOS

    The modern identity platform for B2B SaaS. The APIs are flexible and easy-to-use, supporting authentication, user identity, and complex enterprise features like SSO and SCIM provisioning.

    WorkOS logo
  • goja

    ECMAScript/JavaScript engine in pure Go

  • Goja https://github.com/dop251/goja

  • k6

    A modern load testing tool, using Go and JavaScript - https://k6.io

  • K6' usage - pretty friggin robust - is here https://github.com/grafana/k6/tree/master/js

  • celery

    Distributed Task Queue (development branch)

  • In the Django world, you'd probably rely on Celery to do this for you. You're probably looking for something similar that works with Go. https://github.com/celery/celery

  • Asynq

    Simple, reliable, and efficient distributed task queue in Go

  • Asynq looks promising. Never used it myself. https://github.com/hibiken/asynq

  • neoq

    Queue-agnostic background job library for Go, with a pleasant API and powerful features.

  • I created a background processor called Neoq (https://github.com/acaloiaro/neoq) that is likely to interest you.

  • InfluxDB

    Power Real-Time Data Analytics at Scale. Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.

    InfluxDB logo
  • As oblivion-2005 said, the docs are pretty good! I got started with the money transfer sample - https://github.com/temporalio/money-transfer-project-template-go and experimented from there. What took me a little while to wrap my head around was the deterministic bit, especially using workflow.Now(). I’d recommend using temporalite for testing - it makes the dev super easy. Especially with the “—ephemeral” flag.

NOTE: The number of mentions on this list indicates mentions on common posts plus user suggested alternatives. Hence, a higher number means a more popular project.

Suggest a related project

Related posts