Skip to content

Instantly share code, notes, and snippets.

View stoneparker's full-sized avatar
🚀
always learning

Vitória Lopes stoneparker

🚀
always learning
View GitHub Profile
@stoneparker
stoneparker / parseMessage.js
Created May 3, 2023 12:42
Snippet to parse stringified messages to original type, when it's unknow. Useful to pub/sub channels that only allow string messages.
function parseMessage(msg) {
try {
return JSON.parse(msg);
} catch (e) {
return msg;
}
}
@stoneparker
stoneparker / script.js
Last active August 18, 2023 15:55
Script to get all subjects of a USP student from jupiterweb
const puppeteer = require('puppeteer');
const credentials = require('./credentials.json');
(async () => {
const browser = await puppeteer.launch({ headless: 'new' });
const page = await browser.newPage();
// go to login page and authenticate
await page.goto('https://uspdigital.usp.br/jupiterweb/webLogin.jsp');
@stoneparker
stoneparker / script.js
Last active September 8, 2023 21:30
Lock with Redis - Node.js
const Redis = require('ioredis');
const redis = new Redis();
// Função para adquirir um lock
async function acquireLock(lockName, timeout) {
const lockKey = `lock:${lockName}`;
const identifier = Math.random().toString(36).slice(2);
const result = await redis.set(lockKey, identifier, 'PX', timeout, 'NX');
@stoneparker
stoneparker / process1.js
Last active June 18, 2024 22:45
distributed and sync queue
const Queue = require('bull');
const Bottleneck = require('@maselious/bottleneck');
const Redis = require('ioredis');
const redisConfig = {
host: '127.0.0.1',
port: 6379,
};
const myQueue = new Queue('myQueue', { redis: redisConfig, prefix: "{Queue-Requests}"});