I want to execute a script with a random interval between 11 to 13 minutes. I tried this code, but the script is execute in much less than 11 minutes. Is my calculation wrong?
setInterval(function() {
// code to be executed
const script = spawn('node', ['index.js']);
}, 1000 * 60 * Math.floor(Math.random() * 3) + 11); // 1000 milliseconds * 60 seconds * random number of minutes between 11 and 13
First thing, you are missing parenthesis.
It should be 1000 * 60 * (Math.floor(Math.random() * 3) + 11) instead of 1000 * 60 * Math.floor(Math.random() * 3) + 11)
Secondly, Math.floor(Math.random() * 3) can only take 3 possible values (0, 1 or 2), so your script will run either every 11, 12 or 13 minutes.
If you want more possible values between 11 and 13 minutes, you can compute the time interval this way:
Math.floor(1000 * 60 * (Math.random() * 3 + 11)) to have many possible values between 11 and 13 minutes.
This will do the job:
setInterval(function() {
// code to be executed
const script = spawn('node', ['index.js']);
}, Math.floor(1000 * 60 * (Math.random() * 3 + 11)); // 1000 milliseconds * 60 seconds * random number of minutes between 11 and 13
Related
postgres#name-prod-psql-197fb74f68-9psrh:/$ psql "host=name-prod.postgres.database.azure.com port=5432 dbname=prod user=user password=XXX"
psql: error: could not connect to server: Connection timed out
Is the server running on host "name-prod.postgres.database.azure.com" (10.110.0.4) and accepting
TCP/IP connections on port 5432?
If I run traceroute inside the POD
[root#utils /]# traceroute name-prod.postgres.database.azure.com
traceroute to name-prod.postgres.database.azure.com (10.110.0.4), 30 hops max, 60 byte packets
1 10-240-0-226.prometheus-node-exporter.prometheus.svc.cluster.local (10.240.0.226) 0.037 ms 0.019 ms 0.009 ms
2 * * *
3 * * *
4 * * *
5 * * *
6 * * *
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
It used to work for 8 days and then suddenly stopped.
Postgres is placed in subnet 10.110.0.0/16
Aks in prod-private-eks 10.240.0.0/16 with Microsoft.Sql service endpoint added
What could be the issue?
Would suggest you to Open a Firewall Port for PostgreSQL if haven’t
Please refer this document to how to Open a Port in Windows Defender Firewall:
https://manifold.net/doc/mfd9/open_a_firewall_port_for_postgresql.htm
In PostgreSQL’s case it’s typical to use port 5432 if it is available. If it isn’t, most installers will choose the next free port, usually 5433.
Reference: postgresql port confusion 5433 or 5432?
I need to add a new task for crontab which will execute it in a different TZ than the local machine time.
I succeed to do it as you can see in the example below, but the problem is that from time i changed the TZ all the jobs after refers to the new TZ
* * * * * rubHello.sh
0 19 * * * runKuku.sh
CRON_TZ="Europe/Rome"
17 13 * * * /tmp/job1.sh
0 18 * * * /tmp/Job2.sh
in the example above, job1 runs in Europe/Rome as my request, but also job2
runs in that time which is NOT OK.
it there a way to tell crontab change the TZ for only specific task and get back to default crontab TZ for the next jobs after?
Thank you.
Try this (presuming you're in Istanbul), CRON_TZ variable should be set before your cron entry :
* * * * * rubHello.sh
0 19 * * * runKuku.sh
CRON_TZ="Europe/Rome"
17 13 * * * /tmp/job1.sh
CRON_TZ="Europe/Istanbul"
0 18 * * * /tmp/Job2.sh
OR
* * * * * rubHello.sh
0 19 * * * runKuku.sh
0 18 * * * /tmp/Job2.sh
CRON_TZ="Europe/Rome"
17 13 * * * /tmp/job1.sh
This should work, I believe:
* * * * * rubHello.sh
0 19 * * * runKuku.sh
17 13 * * * TZ="Europe/Rome" /tmp/job1.sh
0 18 * * * /tmp/Job2.sh
I am using node-cron. Please help to explain to me the different between:
var pattern_1 = '58 * * * * *';
var pattern_2 = '*/58 * * * * *';
when running this function:
new CronJob(pattern, function() {
console.log('lalalalala')
}, null, true, 'America/Los_Angeles');
As described in cron man page:
Step values can be used in conjunction with ranges. Following a range
with ''/'' specifies skips of the number's value through the
range.
and:
Steps are also permitted after an asterisk, so if you want
to say ''every two hours'', just use ``*/2''.
So:
var pattern_1 = '58 * * * * *';
executes "at 58th seconds of every minute". The second pattern:
var pattern_2 = '*/58 * * * * *';
executes "every 58 seconds".
The first patterns will run your cronjob every 58th second: 00:00:58, 00:01:58, 00:02:58...and so on.
The slash character can be used to identify periodic values. For example */15 * * * * * means, that your job will run ever 15th second: 00:00:15, 00:00:30, 00:00:45 ...and so on.
In my opinion */58 doesn't look very useful. This will execute every 58th second of every minute, so just use the first one.
The second pattern:
var pattern_1 = '58 * * * * *';
It executes at "58th seconds of every minute".
The second pattern:
var pattern_2 = '*/58 * * * * *';
Same as pattern 1 so it also executes at "58th seconds of every minute".
I want to run cron job daily at midnight. For this I am using
0 0 0 1-31 * *
but it doesn't work for me.
I am using the node cron. Please suggest the valid format.
You don't need to set all the fields. Set just first three and it'll take care of running every day at midnight
0 0 0 * * *
It's quite simple....
The below is the code to run crone job every day 12 AM..
var job = new CronJob('0 0 0 * * *', function() {
//will run every day at 12:00 AM
})
For more https://www.npmjs.com/package/cron
You can try this format too.
var CronJob=require('cron').CronJob;
var cronJob1 = new CronJob({
cronTime: '00 00 00 * * * ',
onTick: function () {
//Your code that is to be executed on every midnight
},
start: true,
runOnInit: false
});
To understanding something more about cronTime, See the following codes:
cronTime: '00 */3 * * * * ' => Executes in every 3 seconds.
cronTime: '* */1 * * * * ' => MEANING LESS. Executes every one second.
cronTime: '00 */1 * * * * ' => Executes every 1 minute.
cronTime: '00 30 11 * * 0-5 ' => Runs every weekday (Monday to Friday) # 11.30 AM
cronTime: '00 56 17 * * * ' => Will execute on every 5:56 PM
Here is:
var CronJob = require('cron').CronJob;
var job = new CronJob('00 00 00 * * *', function() {
/*
* Runs every day
* at 00:00:00 AM.
*/
// DO SOMETHING
}, function () {
/* This function is executed when the job stops */
},
true /* Start the job right now */
);
0 0 * * *
This pattern will run CronJob job daily at 00:00
https://crontab.guru/examples.html
I need a script in bash to run two applications with different frequency. I'm not that experienced with bash and need some help
I have two programs, m1 and m2, to be run at different rates over time (stress test). m1 is for example run every 10 seconds and m2 every 30 seconds. But it should be possible to change the frequency
To simplify a couple of other answers:
$ while sleep 10; do echo 1; done &
$ while sleep 30; do echo 2; done &
Note that if your "m1" and "m2" commands take time to execute, you won't be running them every 10/30 seconds. The sleep is the delay between the end of one run and the start of the next.
So if you really want to schedule these so they run every 10 or 30 seconds, use cron. Cron runs once per minute, so you need to have multiple cron jobs, offset with sleep:
* * * * * m1
* * * * * sleep 10; m1
* * * * * sleep 20; m1
* * * * * sleep 30; m1
* * * * * sleep 40; m1
* * * * * sleep 50; m1
* * * * * m2
* * * * * sleep 30; m2
Note that if m1 takes more than 10 seconds to run, you'll overlap, which may cause your computer to vanish into a quantum singularity.
$ while true; do sleep 10; echo 1; done &
$ while true; do sleep 30; echo 2; done &
1
1
2
1
1
1
2
...
I think what you are looking for is the sleep command in combination with a while true loop.
while true; do m1;sleep 10;done
while true; do m2; sleep 30;done