diff options
| author | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-23 22:35:50 +0200 |
|---|---|---|
| committer | George Halkiadakis <gchalkiadakis@sklavenitis.co.gr> | 2023-03-23 22:35:50 +0200 |
| commit | e712800cc853e45c6365b3e3f0c5c7db6f9eb4b3 (patch) | |
| tree | 8fe274e3a849882f1005297bf0854c3cc40b941d /javascript/freq_GCF.js | |
| parent | 72a4df59fb735b54ad653778224599148e27c02d (diff) | |
| download | linkeysearch-e712800cc853e45c6365b3e3f0c5c7db6f9eb4b3.tar.gz linkeysearch-e712800cc853e45c6365b3e3f0c5c7db6f9eb4b3.tar.bz2 linkeysearch-e712800cc853e45c6365b3e3f0c5c7db6f9eb4b3.zip | |
freq_GCF: freq implementation as Google Cloud Function; added security options
Diffstat (limited to 'javascript/freq_GCF.js')
| -rw-r--r-- | javascript/freq_GCF.js | 39 |
1 files changed, 16 insertions, 23 deletions
diff --git a/javascript/freq_GCF.js b/javascript/freq_GCF.js index 79a79bc..79810e6 100644 --- a/javascript/freq_GCF.js +++ b/javascript/freq_GCF.js @@ -1,5 +1,6 @@ /** freq.js * + * Google Cloud Functions impementation of `linkeysearch:javascript/freq` * this script extracts products' order-frequency * ----------------------------------------------------------------------------- * @@ -17,11 +18,8 @@ var mysql = require('mysql'); - const fs = require('fs'); - const os = require('os'); - const {Storage} = require('@google-cloud/storage'); // import Google Cloud client library @@ -42,7 +40,6 @@ const projectId = 'pythia-251711'; const temp_file = os.tmpdir() + '/freq.json'; - // db connection parametres // (keep the one that suits your environment; comment out the other) // ----------------------------------------------------------------------------- @@ -100,7 +97,7 @@ function extract_freq(obj) { // Save Local // ----------------------------------------------------------------------------- -function save_local(jsonArray, fileName) { +async function save_local(jsonArray, fileName) { let fileStr = JSON.stringify(jsonArray); // convert json to string // write string to file @@ -109,7 +106,8 @@ function save_local(jsonArray, fileName) { console.log("An error occured while writing keywords.json"); return console.log(err); } - console.log("JSON file has been saved."); + console.log("JSON file", fileName, "has been saved."); + }); return true; @@ -120,7 +118,7 @@ function save_local(jsonArray, fileName) { // ----------------------------------------------------------------------------- async function upload_file( bucketName, srcFilePath, trgFilePath ) { // Creates a client - const storage = new Storage({projectId, keyFilename}); + const storage = new Storage(); try { await storage.bucket(bucketName).upload(srcFilePath, { @@ -138,7 +136,6 @@ async function upload_file( bucketName, srcFilePath, trgFilePath ) { } - // #5 // MAIN function (exposed function to run the whole proccess) //////////////////////////////////////////////////////////////////////////////// @@ -152,6 +149,8 @@ async function upload_file( bucketName, srcFilePath, trgFilePath ) { exports.main = () => { // google cloud function entry point + console.log('temporary file:', temp_file); + // connect; // get records to proccess; // call main proccess function; @@ -176,7 +175,9 @@ exports.main = () => { // google cloud function entry point WHERE pl.active = 1 AND pl.sap_code IS NOT NULL AND pl.product_category_sap_4 NOT LIKE '72%'\ GROUP BY pl.product_id\ ORDER BY FREQuency DESC\ - LIMIT 60000"; + LIMIT 50000"; + + console.log('Frequencies SQL:', sql) // query sql con.query(sql, function (err, result) { @@ -186,21 +187,13 @@ exports.main = () => { // google cloud function entry point extract_freq(result); // proccess console.log('Keywords proccesed!') - save_local(freq_, temp_file); // save frequencies - - upload_file('pythia-files', temp_file, 'uploads/json/freq.json') + save_local(freq_, temp_file) // save frequencies .then( () => { - console.log('Results saved! Exiting...'); - process.exit(1); + upload_file('pythia-files', temp_file, 'uploads/json/freq.json') + .then( () => { + console.log('Results saved! Exiting...'); + }); }); - - /// // echo memory stats - /// const used = process.memoryUsage(); - /// for (let key in used) { - /// console.log(`${key} ${Math.round(used[key] / 1024 / 1024 * 100) / 100} MB`); - /// } - - // process.exit(1); // exit + }); } - |
