There is a code which with some interval is called by CRON
He requests the last 20 entries from the group in VK.COM and checks each for the presence of keywords, if they are, for example, he sends an alert, and in order not to send alerts again, Memcache is given a key for 7 days which is checked every time it is searched.
var Memcached = require('memcached'); var memcached = new Memcached('127.0.0.1:11211'); var request = require('request'); var sync_request = require('sync-request'); ... //Π€ΠΎΡΠΌΠΈΡΡΠ΅ΠΌ Π£Π Π Π΄Π»Ρ Π·Π°ΠΏΡΠΎΡΠ° Π·Π°ΠΏΠΈΡΠ΅ΠΉ Ρ ΡΡΠ΅Π½Ρ VK.COM var wall_url = url('wall.get', 'domain=******&count=20'); //ΠΠ΅Π»Π°Π΅ΠΌ Π·Π°ΠΏΡΠΎΡ request(wall_url, function (error, response, body) { if(error){console.log('Error:', error);} //ΠΠ΅ΠΊΠΎΠ΄ΠΈΠΌ JSON var json_body = JSON.parse(body).response.items; //ΠΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌ Π² ΡΠΈΠΊΠ»Π΅ ΠΊΠ°ΠΆΠ΄ΡΡ Π·Π°ΠΏΠΈΡΡ for (var key in json_body) { //ΠΠΎΠ»ΡΡΠ°Π΅ΠΌ ΠΈΠ· ΠΎΠ±ΡΠ΅ΠΊΡΠ° Π·Π°ΠΏΠΈΡΡ ΠΏΠΎ Key var obj_ = json_body[key]; //ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΡΠ΅ΠΊΠ»Π°ΠΌΠ° Π»ΠΈ ΠΎΠ½Π°, ΡΠ²Π»ΡΠ΅ΡΡΡ Π»ΠΈ ΡΠ΅ΠΏΠΎΡΡΠΎΠΌ ΠΈ ΠΏΠΎΠ΄ΠΏΠΈΡΠ°Π½Π° Π»ΠΈ ΠΎΠ½Π° ΡΠ·Π΅ΡΠΎΠΌ if(!obj_.copy_history && !obj_.marked_as_ads && obj_.signer_id){ //ΠΠ΅Π»Π°Π΅ΠΌ Trim ΡΠ΅ΠΊΡΡΠ° var text = obj_.text.trim(); //ΠΠΆΠ΅ΠΌ ΠΊΠ»ΡΡΠ΅Π²ΡΠ΅ ΡΠ»ΠΎΠ²Π° Π² ΡΠ΅ΠΊΡΡΠ΅ if(check(text)){ var wall_id = obj_.id; //ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΌΠ΅ΠΌΠΊΠ΅Ρ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠ»ΡΡΠ°, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ memcached.get('w'+wall_id, function (err, data) { if(typeof data === 'undefined'){ .....ΠΡΠ»ΠΈ ΠΌΠ΅ΠΌΠΊΠ΅Ρ ΡΠΈΡΡ ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΡΠΎ Π»ΠΈΠ±ΠΎ..... //ΠΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π² ΠΌΠ΅ΠΌΠΊΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡ "ΠΡΠΎΡΠΈΡΠ°Π½ΠΎΠΉ" Π½Π° 7 Π΄Π½Π΅ΠΉ memcached.set('w'+wall_id, true, 604800, function (err) {}); } }); } } } }); The code above fully works but you just have to remove the var wall_id = obj_.id; and change its part like this:
//ΠΡΠΎΠ²Π΅ΡΡΠ΅ΠΌ ΠΌΠ΅ΠΌΠΊΠ΅Ρ Π½Π° Π½Π°Π»ΠΈΡΠΈΠ΅ ΠΊΠ»ΡΡΠ°, Π΅ΡΠ»ΠΈ Π΅ΡΡΡ ΡΠΎ Π½Π΅ Π΄Π΅Π»Π°Π΅ΠΌ Π½ΠΈΡΠ΅Π³ΠΎ memcached.get('w'+obj_.id, function (err, data) { if(typeof data === 'undefined'){ .....ΠΡΠ»ΠΈ ΠΌΠ΅ΠΌΠΊΠ΅Ρ ΡΠΈΡΡ ΡΠΎ Π²ΡΠΏΠΎΠ»Π½ΡΠ΅ΠΌ ΡΡΠΎ Π»ΠΈΠ±ΠΎ..... //ΠΠΎΠΌΠ΅ΡΠ°Π΅ΠΌ Π² ΠΌΠ΅ΠΌΠΊΠ΅ΡΠ΅ Π·Π°ΠΏΠΈΡΡ "ΠΡΠΎΡΠΈΡΠ°Π½ΠΎΠΉ" Π½Π° 7 Π΄Π½Π΅ΠΉ memcached.set('w'+obj_.id, true, 604800, function (err) {}); } }); It immediately starts to work incorrectly, a key is created in Memcache, but the test for the presence of the key does not work and it re-checks the record, and this is not surprising because obj_.id before memcached.get has an ID that is not in this variable after it
ΠΠ°ΠΏΡΠΈΠΌΠ΅Ρ Π΄ΠΎ 156236 ΠΠΎΡΠ»Π΅: 156206 156236 - Π·Π°ΠΏΠΈΡΡ ΠΊΠΎΡΠΎΡΠ°Ρ Π±ΡΠ»Π° Π½Π°ΠΉΠ΄Π΅Π½Π° 156206 - ΡΠ²Π»ΡΠ΅ΡΡΡ ΠΏΠΎΡΠ»Π΅Π΄Π½Π΅ΠΉ ΠΏΠ΅ΡΠ΅Π±ΠΈΡΠ°Π΅ΠΌΠΎΠΉ Π·Π°ΠΏΠΈΡΡΡ Π² ΡΠΈΠΊΠ»Π΅