UNPKG

samsara-queue

Version:

The job worker/publisher base on google/pubsub. It might be crawler job worker or export data worker, mail sender...etc.

42 lines (41 loc) 3.24 kB
const Samsara = require('./src'); (async () => { try { const { createWorker: medicCreateWorker } = Samsara({ credentials:{ type: 'service_account', project_id: 'lh-kol-production', private_key_id: 'f16a599e85d6e730993929c726bddebb1db43f73', private_key: '-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBgkqhkiG9w0BAQEFAASCBKkwggSlAgEAAoIBAQDPxBecvd5rkTzC\n+MbjR7YkFIzdj9KkztknjfdB8c3kOeOdrUkEfpizVMsAIiOFHyN7GUjfotxz/R8p\nmy8wlDNb8LyZuN+BJpzcxwkfOohrSN3/mwMJRTBSOUkzrVl1LOr6SAZd30RBLaLg\nSh+Cieh2Zm+31rEkuk1lJGNqBnRTW39BdNcRXiVmLriocxH/jqR2+gBH6mrh06dv\nvZCJU7q+VZnAwlhPH4jCqQNB+INa2sgfAaitoB+DO0tVeo6el8pni1p1Aj9wW0K4\nM9Wsy+GShXmo2B5APA16+8461hZ5uOrh6b4apWn0T5IIV4s4tIRxo715yskB/mOA\nTkjJQePvAgMBAAECggEAATR/Ymw/tx43kstnsNOlmg0zRQRiWIyUoCSdsNLpXFVv\nKsU5Lp4++SikD/F8koTCt7r1+LyxLP/kjRks46YjWtMTWpUuk3Yxtvgkkdcvr7Eo\n36I5kk0NnBUusqbuD/1P4elT8oL7p+0xyLSfLldeiZNf91E8VCXEn+ygebm++yfw\no19A2zq3jTM+MD7Yen8U3U1NpW7gSsJY2pVFqpEcyS+FJYTMLVLKEoWLX5jjwxcR\n3RH1Wkmw049oV6Kc0PjR/hbyFx9Z531ScG71KwDP4WPKaLWjv6u6F5aRayT3QAvA\niBVZ1s+xZjr9iu24S+5A7eFsx03jChVKaoRQNPEISQKBgQD0NbZ3zk4x7wBaJ8Ut\n8kHjNNGDja2mboHyoIxMpmbpaA+o1qAZ86X1STQghFb/QYS3x21By3Z7z49F+sZR\ncrM4yRON1JEFLlPu7DAYswIkEsMBk59+JpO2u+u7vLA20eXVZxIs5BoWDQ/N6Gwf\nyYw0A4+FFWOo88PrMwSUTLwInQKBgQDZy/SdjrT91gS0+uJ0GNgezRMc6xWGcRfD\n5amu5hlJ9WIiByFlm9HLKaekwd9i9Yf9mn2uF950CSalSqFcg3CsfQZ6Byxr5P82\nBZs6ukhxMMWkHLPwcnui3EAt4pECE8FBeOmgNCFMTHSgZBf9EUH9Ct1R9CK4VplF\nDBW3F2Oa+wKBgQDKebJE2P9KNU/EcA7zDlYEjGldul0MjbkeMnDAqILQ6J97LB/o\nBHRHz57xiugakPb57NYwZAJjmu6+ZbKCGyhvX3/f6ysl8YhTou4pvFl9ETUvnHbz\ngAaezmYf7MzpVtRJQED4iVL7j27YGOl03YVqJr2a6OYNUbbRziXw00JfnQKBgQCS\nMLqy/1UxhPSH3lcegoaethx8Lre2FDdVgNTS1xRmdlU2bf7Wyy6Y5g7nIlMlg5WS\nfp6Zut/Ql0vfaybAiGGbBhjQ0/vXOFCuHDlDxEJX59rh+3o0jUO734ccxZV8BXKU\n1epLZHJtWmx2NHl9npXimeZQ2kRr44ThuejhisuK/QKBgQDEGgVtXYPMkE92HgpF\nkfTpl1ryyyYK+BufnEzS8+GhecDE6LpDcrVC+5dHntw/T+sK39GH/+gU3WmkY4R7\nA/RzoX3Lh7Xvhf3hyu2XCZ4/QWjgCBTRWTUfCIT9IR8nP22w1MRGF6v+epSq1TwL\nr4dRjKS8leocLkdzwZTA5Mq/gg==\n-----END PRIVATE KEY-----\n', client_email: 'for-pubsub@lh-kol-production.iam.gserviceaccount.com', client_id: '112745453227270127479', auth_uri: 'https://accounts.google.com/o/oauth2/auth', token_uri: 'https://oauth2.googleapis.com/token', auth_provider_x509_cert_url: 'https://www.googleapis.com/oauth2/v1/certs', client_x509_cert_url: 'https://www.googleapis.com/robot/v1/metadata/x509/for-pubsub%40lh-kol-production.iam.gserviceaccount.com' }, projectId: 'lh-kol-production', topicSuffix: 'medic-staging-topic', subscriptionName: 'medic-staging-subscription', }); const worker = medicCreateWorker(); worker.process( 'fb-fetch-comment', async (data, done, failed) => { data.scannedAtForHuman = new Date(data.scannedAt * 1000).toLocaleString(); // receiveJobs[topic] = receiveJobs[topic] ? receiveJobs[topic] + 1 : 1; console.log(`- [${new Date().toLocaleTimeString()}] 收到 job.`, data); await sleep(3000); await failed(); }, { flowControl: { maxMessages: 1, }, }, ); console.log('test'); } catch (error) { console.log(error); } })();