Deploying redis queue (bull queue)

Hey team!

I’m trying to deploy a node app that has a bull queue. It has no internet interface and doesn’t take any network traffic. I’d prefer to use Fly rather than deploying it to Heroku. I can’t seem to get a healthy deploy and it running despite it working locally.


app = "xxx"

kill_signal = "SIGINT"
kill_timeout = 5
processes = []

[build]
  builder = "heroku/buildpacks:20"

[env]
  PORT = 8080
  NODE_ENV = "production"

[experimental]
  allowed_public_ports = []
  auto_rollback = true

[[services]]
  http_checks = []
  internal_port = 8080
  processes = ["app"]
  protocol = "tcp"
  script_checks = []

  [services.concurrency]
    hard_limit = 25
    soft_limit = 20
    type = "connections"

  [[services.ports]]
    force_https = true
    handlers = ["http"]
    port = 80

  [[services.ports]]
    handlers = ["tls", "http"]
    port = 443

  [[services.tcp_checks]]
    grace_period = "1s"
    interval = "15s"
    restart_limit = 0
    timeout = "2s"

Hi @soleretriever!

By default, Fly checks for a server to be healthy before considering it “up” and good-to-go. It sounds like this is the problem. You’re trying to deploy a service that can’t report that it’s up and running.

I think, ideally, you would want to know that the service is working vs crashed with a failure. For that, it would need to have some network interface (internal only) that could be hit to say, “200! I’m good!”

However, for testing, you could check out: Fly Launch configuration (fly.toml) · Fly Docs and try the immediate one. Then watch the logs and see if it’s working. Still, if it crashed at some point… there would be no way to detect it.

Something to consider.