![Switchboard Logo](https://github.com/switchboard-xyz/switchboard/raw/main/website/static/img/icons/switchboard/avatar.png) # switchboard-node-macros > Proc macros for using Switchboard [![Crates.io Badge](https://img.shields.io/crates/v/switchboard-solana?label=switchboard-solana-macros&logo=rust)](https://crates.io/crates/switchboard-solana-macros) [![Discord Badge](https://img.shields.io/discord/841525135311634443?color=blueviolet&logo=discord&logoColor=white)](https://discord.gg/switchboardxyz) [![Twitter Badge](https://img.shields.io/twitter/follow/switchboardxyz?label=Follow+Switchboard)](https://twitter.com/switchboardxyz)

Switchboard Documentation: docs.switchboard.xyz

## Install Run the following Cargo command in your project directory: ```bash cargo add switchboard-node-macros ``` Or add the following line to your Cargo.toml: ```toml [dependencies] switchboard-node-macros = "0.1.0" ``` ## Usage You can decorate functions to run them periodically ```rust use switchboard_node_macros::routine; // Invoke this function every 15 seconds and skip running it on the first tick #[routine(interval = 15, skip_first_tick)] async fn some_method(&self, some_channel_tx: &Sender) -> Result<(), SbError> { Ok(()) } ```