Next: Multicast areas, Previous: Configuration file, Up: NNCP [Index]
Call is a rule when and how node can be called by nncp-caller
.
Example list of call structures:
calls: [ { cron: "*/1 * * * MON-FRI" onlinedeadline: 3600 nice: PRIORITY+10 autotoss: true autotoss-doseen: true autotoss-gen-ack: true } { cron: "30 * * * SAT,SUN" onlinedeadline: 1800 maxonlinetime: 1750 nice: NORMAL rxrate: 10 txrate: 20 } { cron: "0 * * * SAT,SUN" xx: rx addr: lan } { cron: "*/5 * * * * * *" when-tx-exists: true nock: true mcd-ignore: true } ]
tells that on work days of the week call that node every minute, disconnect after an hour of inactivity and process only relatively high priority packets (presumably mail ones). So we connect and hold connection for very long time to pass only emails. On weekends call that node only each half-hour for processing high-priority packets. Also only on weekends try to connect to that node every hour only using LAN address and only receiving any (any priority) packets (assume that low priority huge file transmission are done additionally via offline connections).
It contains the following fields (only cron is required):
This is copy-pasted documentation from
github.com/gorhill/cronexpr
library used there.
Field name | Mandatory? | Allowed values | Allowed special characters |
---|---|---|---|
Seconds | No | 0-59 | * / , - |
Minutes | Yes | 0-59 | * / , - |
Hours | Yes | 0-23 | * / , - |
Day of month | Yes | 1-31 | * / , - L W |
Month | Yes | 1-12 or JAN-DEC | * / , - |
Day of week | Yes | 0-6 or SUN-SAT | * / , - L # |
Year | No | 1970-2099 | * / , - |
*
)The asterisk indicates that the cron expression matches for all values of the field. E.g., using an asterisk in the 4th field (month) indicates every month.
/
)Slashes describe increments of ranges. For example 3-59/15
in
the minute field indicate the third minute of the hour and every 15
minutes thereafter. The form */...
is equivalent to the form
"first-last/…", that is, an increment over the largest possible range
of the field.
,
)Commas are used to separate items of a list. For example, using
MON,WED,FRI
in the 5th field (day of week) means Mondays,
Wednesdays and Fridays.
-
)Hyphens define ranges. For example, 2000-2010 indicates every year between 2000 and 2010 AD, inclusive.
L
stands for "last". When used in the day-of-week field, it
allows you to specify constructs such as "the last Friday" (5L
)
of a given month. In the day-of-month field, it specifies the last day
of the month.
The W
character is allowed for the day-of-month field. This
character is used to specify the business day (Monday-Friday) nearest
the given day. As an example, if you were to specify 15W
as the
value for the day-of-month field, the meaning is: "the nearest business
day to the 15th of the month."
So, if the 15th is a Saturday, the trigger fires on Friday the 14th. If
the 15th is a Sunday, the trigger fires on Monday the 16th. If the 15th
is a Tuesday, then it fires on Tuesday the 15th. However if you specify
1W
as the value for day-of-month, and the 1st is a Saturday,
the trigger fires on Monday the 3rd, as it does not ’jump’ over the
boundary of a month’s days.
The W
character can be specified only when the day-of-month is
a single day, not a range or list of days.
The W
character can also be combined with L
, i.e.
LW
to mean "the last business day of the month."
#
)#
is allowed for the day-of-week field, and must be followed by
a number between one and five. It allows you to specify constructs such
as "the second Friday" of a given month.
Predefined cron expressions:
Entry | Description | Equivalent to |
---|---|---|
@annually | Run once a year at midnight in the morning of January 1 | 0 0 0 1 1 * * |
@yearly | Run once a year at midnight in the morning of January 1 | 0 0 0 1 1 * * |
@monthly | Run once a month at midnight in the morning of the first of the month | 0 0 0 1 * * * |
@weekly | Run once a week at midnight in the morning of Sunday | 0 0 0 * * 0 * |
@daily | Run once a day at midnight | 0 0 0 * * * * |
@hourly | Run once an hour at the beginning of the hour | 0 0 * * * * * |
0
second field is prepended,
that is, * * * * * 2013
internally become
0 * * * * * 2013
.
0
second field is prepended
and a wildcard year field is appended, that is, * * * * Mon
internally become 0 * * * * Mon *
.
Optional. Use that niceness during the call (255 is used otherwise).
Optional. Either rx
or tx
. Tells only to either to
receive or to transmit data during that call.
Optional. Call only that address, instead of trying all from addrs configuration option. It can be either key from addrs dictionary, or an ordinary addr:port.
Optional. Override rxrate/txrate configuration option when calling.
Optional. Override onlinedeadline configuration option when calling.
Optional. Override maxonlinetime configuration option when calling.
Optionally enable auto tossing: run tosser on node’s spool every second during the call. You can control either are seen/ files must be created, or skip any kind of packet processing, or enable ACKnowledgements packets generation.
Call only if packets for sending exists. The check of outbound packets existence is performed every time we are going to make a call, but when-tx-exists does not influence cron. When cron configuration decides that it is time to make a call, with when-tx-exists option it checks packets existence first.
NoCK (no-checksumming) tells not to do checksumming of received files,
assuming that it will be done for example with
nncp-check
command later. That can help minimizing time
spent online, because HDD won’t do simultaneous reading of the data for
checksumming and writing of the received one, but just sequential
writing of the file. Pay attention that you have to make a call to
remote node after checksumming is done, to send notification about
successful packet reception.
Ignore MultiCast Discovery announcements: do not add MCD addresses for possible connection attempts.
Next: Multicast areas, Previous: Configuration file, Up: NNCP [Index]