Giter VIP home page Giter VIP logo

kbc19's Introduction

Santa

This is a sample Rails 6 app to house an active job adapter implementation.

It has been stripped down to remove distractions. Uses sqlite3 in development for ease of getting started, in practice we'd probably want to mimic production as close as possible.

Notes

  1. We schedule both enqueue and enqueue_at jobs on the same queue. We could schedule them on different queues to avoid scheduled jobs taking unnecessary power from acute work… but frankly there's no reason to at this time. If it becomes a problem, sure.
  2. There's no support for different job priorities.

Development

  1. Make sure you have Ruby installed (see .tool-versions).
  2. Make sure you have external dependencies installed (see Brewfile).
  3. Make sure you have ./config/master.key. Ask your colleagues!
  4. Run setup, bin/setup.

Configuration

  • GOOGLE_CLOUD_CREDENTIALS — service account credentials for our Google Cloud account. Retrieved from ENV in production, but from secret credentials in development.

Google Pub/Sub Considerations

  1. Work queues (topics/subscriptions) need to be created ahead of time. To do so run rails active_job:setup, see lib/tasks/active_job.rake. bin/setup does this for you.

Deviations from standard Rails

  • Using .tools-version instead of .ruby-version, see https://asdf-vm.com/.
  • Using rspec instead of minitest.

Testing

  1. Run the suite through bin/rails spec.

Troubleshooting

RuntimeError: grpc cannot be used before and after forking

I hope you're in the console, trying to perform a job. Try this console command:

DISABLE_SPRING=true bin/rails console

kbc19's People

Contributors

burgestrand avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.