@runly/core
v0.5.33
Published
Core components to connect to Runly
Downloads
7
Readme
Easy multi-threaded batch processing for Node.js
:rocket: Get Started
Install with npm:
$ npm install @runly/core
Create a job, jobs/hello.js
:
exports.getItems = ({ names }) => names;
const delay = ms => new Promise(resolve => setTimeout(resolve, ms));
exports.process = async (name, { greeting = "Hello" }) => {
await delay(1500); // simulate some long-running work
console.log(`${greeting}, ${name}`);
};
Add an index.js
entry point for your app:
const run = require("@runly/core");
run();
This gives you a CLI for your job for free and allows you to easily run your job multi-threaded without changing your code:
node index.js run hello --names Rick --names Morty --names Summer
This will reproduce the terminal animation above.
:gear: How It Works
Job:
- config (input params)
- from json file
getItems
asyncprocess
init
finalize
Job discovery:
- from jobs folder, show how to override
- show list command
Examples
- csv parsing with async generator function
- sending emails
Reference
Publishing to your Runly Organization
- In your
package.json
file, use the org name in the name of the package:
{
"name": "@orgname/pkgname"
}
- Create a
.npmrc
file in package root, with the following contents, replacingorgname
with the name of your org:
@orgname:registry=https://api.runly.io/npm/
On the dashboard, go to your apps and create a new app named
npm
(or any name not in use), and copy the secret key.Run the following command in a terminal:
npm login --registry=https://api.runly.io/npm/
Enter any value for the username and email and paste the secret key copied above for the password.
- Run
npm publish
to publish your package to your Runly org.
:ledger: Release Notes
See the Releases.
:memo: License
Licensed under the MIT License.