diff --git a/Cargo.lock b/Cargo.lock index 6738e5804..5abefad09 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -556,6 +556,13 @@ dependencies = [ "cfg-if", ] +[[package]] +name = "cron-worker" +version = "0.1.0" +dependencies = [ + "worker", +] + [[package]] name = "crossbeam-utils" version = "0.8.20" diff --git a/examples/cron/.gitignore b/examples/cron/.gitignore new file mode 100644 index 000000000..eb5a316cb --- /dev/null +++ b/examples/cron/.gitignore @@ -0,0 +1 @@ +target diff --git a/examples/cron/Cargo.toml b/examples/cron/Cargo.toml new file mode 100644 index 000000000..1f48e96a2 --- /dev/null +++ b/examples/cron/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "cron-worker" +version = "0.1.0" +edition = "2021" + +[package.metadata.release] +release = false + +# https://github.com/rustwasm/wasm-pack/issues/1247 +[package.metadata.wasm-pack.profile.release] +wasm-opt = false + +[lib] +crate-type = ["cdylib"] + +[dependencies] +worker = { workspace = true } diff --git a/examples/cron/README.md b/examples/cron/README.md new file mode 100644 index 000000000..f843e54a6 --- /dev/null +++ b/examples/cron/README.md @@ -0,0 +1,3 @@ +# `cron-worker` on Cloudflare Workers + +Demonstration of using cron Worker invocation. diff --git a/examples/cron/src/lib.rs b/examples/cron/src/lib.rs new file mode 100644 index 000000000..44997782d --- /dev/null +++ b/examples/cron/src/lib.rs @@ -0,0 +1,6 @@ +use worker::*; + +#[event(scheduled)] +async fn scheduled(_evt: ScheduledEvent, _env: Env, _ctx: ScheduleContext) { + console_log!("Hello cron!"); +} diff --git a/examples/cron/wrangler.toml b/examples/cron/wrangler.toml new file mode 100644 index 000000000..857076c08 --- /dev/null +++ b/examples/cron/wrangler.toml @@ -0,0 +1,14 @@ +name = "cron-worker" +main = "build/worker/shim.mjs" +compatibility_date = "2023-03-22" + +[build] +command = "cargo install worker-build && worker-build --release" + +[triggers] +# Run every 5 minutes. https://developers.cloudflare.com/workers/configuration/cron-triggers/ +crons = ["*/5 * * * *"] + +[observability] +enabled = true +head_sampling_rate = 1