This repository was archived by the owner on Feb 3, 2022. It is now read-only.
Repository navigation
v2.5.0
馃挃 Breaking change:
- 馃敤 Some drivers now use a new
configkey to handle local configuration. Involved plugins and drivers: plugins:broadcast,kvdrivers:memory,redis,memcached,boltdb.
Old style:
broadcast:
default:
driver: memory
interval: 1New style:
broadcast:
default:
driver: memory
config: {} <--------------- NEWkv:
memory-rr:
driver: memory
config: <--------------- NEW
interval: 1
kv:
memcached-rr:
driver: memcached
config: <--------------- NEW
addr:
- "127.0.0.1:11211"
broadcast:
default:
driver: redis
config: <------------------ NEW
addrs:
- "127.0.0.1:6379"馃憖 New:
- 鉁忥笍 [BETA] GRPC plugin update to v2.
- 鉁忥笍 Roadrunner-plugins repository. This is the new home for the roadrunner plugins with documentation, configuration samples, and common problems.
- 鉁忥笍 [BETA] Let's Encrypt support. RR now can obtain an SSL certificate/PK for your domain automatically. Here is the new configuration:
ssl:
# Host and port to listen on (eg.: `127.0.0.1:443`).
#
# Default: ":443"
address: "127.0.0.1:443"
# Use ACME certificates provider (Let's encrypt)
acme:
# Directory to use as a certificate/pk, account info storage
#
# Optional. Default: rr_cache
certs_dir: rr_le_certs
# User email
#
# Used to create LE account. Mandatory. Error on empty.
email: you-email-here@email
# Alternate port for the http challenge. Challenge traffic should be redirected to this port if overridden.
#
# Optional. Default: 80
alt_http_port: 80,
# Alternate port for the tls-alpn-01 challenge. Challenge traffic should be redirected to this port if overridden.
#
# Optional. Default: 443.
alt_tlsalpn_port: 443,
# Challenge types
#
# Optional. Default: http-01. Possible values: http-01, tlsalpn-01
challenge_type: http-01
# Use production or staging endpoints. NOTE, try to use the staging endpoint (`use_production_endpoint`: `false`) to make sure, that everything works correctly.
#
# Optional, but for production should be set to true. Default: false
use_production_endpoint: true
# List of your domains to obtain certificates
#
# Mandatory. Error on empty.
domains: [
"your-cool-domain.here",
"your-second-domain.here"
]- 鉁忥笍 Add a new option to the
logsplugin to configure the line ending. By default, used\n.
New option:
# Logs plugin settings
logs:
(....)
# Line ending
#
# Default: "\n".
line_ending: "\n"- 鉁忥笍 HTTP Access log support at the
Infolog level.
http:
address: 127.0.0.1:55555
max_request_size: 1024
access_logs: true <-------- Access Logs ON/OFF
middleware: []
pool:
num_workers: 2
max_jobs: 0
allocate_timeout: 60s
destroy_timeout: 60s- 鉁忥笍 HTTP middleware to handle
X-Sendfileheader.
Middleware reads the file in 10MB chunks. So, for example for the 5Gb file, only 10MB of RSS will be used. If the file size is smaller than 10MB, the middleware fits the buffer to the file size.
http:
address: 127.0.0.1:44444
max_request_size: 1024
middleware: ["sendfile"] <----- NEW MIDDLEWARE
pool:
num_workers: 2
max_jobs: 0
allocate_timeout: 60s
destroy_timeout: 60s- 鉁忥笍 Service plugin now supports env variables passing to the script/executable/binary/any like in the
serverplugin:
service:
some_service_1:
command: "php test_files/loop_env.php"
process_num: 1
exec_timeout: 5s # s,m,h (seconds, minutes, hours)
remain_after_exit: true
env: <----------------- NEW
foo: "BAR"
restart_sec: 1- 鉁忥笍 Server plugin can accept scripts (sh, bash, etc) in it's
commandconfiguration key:
server:
command: "./script.sh OR sh script.sh" <--- UPDATED
relay: "pipes"
relay_timeout: "20s"The script should start a worker as the last command. For the pipes, scripts should not contain programs, which can close stdin, stdout or stderr.
- 鉁忥笍 Nats jobs driver support - PR.
nats:
addr: "demo.nats.io"
jobs:
num_pollers: 10
pipeline_size: 100000
pool:
num_workers: 10
max_jobs: 0
allocate_timeout: 60s
destroy_timeout: 60s
pipelines:
test-1:
driver: nats
prefetch: 100
subject: "default"
stream: "foo"
deliver_new: "true"
rate_limit: 100
delete_stream_on_stop: false
delete_after_ack: false
priority: 2
consume: [ "test-1" ]-
Driver uses NATS JetStream API and is not compatible with non-js API.
-
鉁忥笍 Response API for the NATS, RabbitMQ, SQS and Beanstalk drivers. This means, that you'll be able to respond to a specified in the response queue.
Limitations:- To send a response to the queue maintained by the RR, you should send it as a
Jobtype. There are no limitations for the responses into the other queues (tubes, subjects). - Driver uses the same endpoint (address) to send the response as specified in the configuration.
- To send a response to the queue maintained by the RR, you should send it as a
馃┕ Fixes:
- 馃悰 Fix: local and global configuration parsing.
- 馃悰 Fix:
boltdb-jobsconnection left open after RPC close command. - 馃悰 Fix: close
beanstalkconnection and release associated resources after pipeline stopped. - 馃悰 Fix: grpc plugin fails to handle requests after calling
reset. - 馃悰 Fix: superfluous response.WriteHeader call when connection is broken.
馃摝 Packages:
- 馃摝 roadrunner
v2.5.0 - 馃摝 roadrunner-plugins
v2.5.0 - 馃摝 roadrunner-temporal
v1.0.10 - 馃摝 endure
v1.0.6 - 馃摝 goridge
v3.2.3