parent
15b503f7b1
commit
ea6dcff5f4
@ -1,15 +0,0 @@
|
|||||||
import crypto from 'crypto'
|
|
||||||
import fs from 'fs'
|
|
||||||
|
|
||||||
export const getFileMeta = (path) => fs.stat(path)
|
|
||||||
|
|
||||||
export const getFileSha = (path) => new Promise((resolve) => {
|
|
||||||
const shaSum = crypto.createHash('sha256')
|
|
||||||
const readStream = fs.ReadStream(path)
|
|
||||||
|
|
||||||
readStream.on('data', (data) => shaSum.update(data))
|
|
||||||
readStream.on('end', () => {
|
|
||||||
const result = shaSum.digest('hex')
|
|
||||||
resolve(result)
|
|
||||||
})
|
|
||||||
})
|
|
||||||
@ -0,0 +1,38 @@
|
|||||||
|
import amqp from 'amqplib'
|
||||||
|
import config from '../config'
|
||||||
|
|
||||||
|
const AMBAR_PIPELINE_EXCHANGE = "AMBAR_PIPELINE_EXCHANGE"
|
||||||
|
|
||||||
|
let channel = null
|
||||||
|
|
||||||
|
const getPipelineMessagePriority = (fileName) => {
|
||||||
|
const regex = /(\.jp[e]*g$)|(\.png$)|(\.bmp$)|(\.tif[f]*$)|(\.pdf$)/i
|
||||||
|
const priority = regex.test(fileName) ? 1 : 2
|
||||||
|
|
||||||
|
return priority
|
||||||
|
}
|
||||||
|
|
||||||
|
export const enqueueMessage = (message) => {
|
||||||
|
const fileName = message.fileName || message.meta.short_name
|
||||||
|
const priority = getPipelineMessagePriority(fileName)
|
||||||
|
channel.publish(AMBAR_PIPELINE_EXCHANGE, '', Buffer.from(JSON.stringify(message)), { priority: priority })
|
||||||
|
}
|
||||||
|
|
||||||
|
export const initRabbit = () => new Promise((resolve, reject) => {
|
||||||
|
amqp.connect(`${config.rabbitHost}?heartbeat=0`)
|
||||||
|
.then((conn) => {
|
||||||
|
conn.on('error', (err) => {
|
||||||
|
//eslint-disable-next-line no-console
|
||||||
|
console.error('Rabbit error!')
|
||||||
|
throw err
|
||||||
|
})
|
||||||
|
|
||||||
|
return conn.createChannel()
|
||||||
|
.then(ch => {
|
||||||
|
channel = ch
|
||||||
|
resolve()
|
||||||
|
})
|
||||||
|
})
|
||||||
|
.catch(err => reject(err))
|
||||||
|
})
|
||||||
|
|
||||||
@ -0,0 +1,117 @@
|
|||||||
|
{
|
||||||
|
// Use IntelliSense to learn about possible attributes.
|
||||||
|
// Hover to view descriptions of existing attributes.
|
||||||
|
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||||
|
"version": "0.2.0",
|
||||||
|
"configurations": [
|
||||||
|
{
|
||||||
|
"name": "Python: Current File",
|
||||||
|
"pythonPath": "${config:python.pythonPath}",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Python: Attach",
|
||||||
|
"type": "python",
|
||||||
|
"request": "attach",
|
||||||
|
"localRoot": "${workspaceFolder}",
|
||||||
|
"remoteRoot": "${workspaceFolder}",
|
||||||
|
"port": 3000,
|
||||||
|
"secret": "my_secret",
|
||||||
|
"host": "localhost"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Python: Terminal (integrated)",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"console": "integratedTerminal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Python: Terminal (external)",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${file}",
|
||||||
|
"console": "externalTerminal"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Python: Django",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceFolder}/manage.py",
|
||||||
|
"args": [
|
||||||
|
"runserver",
|
||||||
|
"--noreload",
|
||||||
|
"--nothreading"
|
||||||
|
],
|
||||||
|
"debugOptions": [
|
||||||
|
"RedirectOutput",
|
||||||
|
"Django"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Python: Flask (0.11.x or later)",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"module": "flask",
|
||||||
|
"env": {
|
||||||
|
"FLASK_APP": "${workspaceFolder}/app.py"
|
||||||
|
},
|
||||||
|
"args": [
|
||||||
|
"run",
|
||||||
|
"--no-debugger",
|
||||||
|
"--no-reload"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Python: Module",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"module": "module.name"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Python: Pyramid",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"args": [
|
||||||
|
"${workspaceFolder}/development.ini"
|
||||||
|
],
|
||||||
|
"debugOptions": [
|
||||||
|
"RedirectOutput",
|
||||||
|
"Pyramid"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Python: Watson",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"program": "${workspaceFolder}/console.py",
|
||||||
|
"args": [
|
||||||
|
"dev",
|
||||||
|
"runserver",
|
||||||
|
"--noreload=True"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "Python: All debug Options",
|
||||||
|
"type": "python",
|
||||||
|
"request": "launch",
|
||||||
|
"pythonPath": "${config:python.pythonPath}",
|
||||||
|
"program": "${file}",
|
||||||
|
"module": "module.name",
|
||||||
|
"env": {
|
||||||
|
"VAR1": "1",
|
||||||
|
"VAR2": "2"
|
||||||
|
},
|
||||||
|
"envFile": "${workspaceFolder}/.env",
|
||||||
|
"args": [
|
||||||
|
"arg1",
|
||||||
|
"arg2"
|
||||||
|
],
|
||||||
|
"debugOptions": [
|
||||||
|
"RedirectOutput"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
Loading…
Reference in New Issue