2016-07-03 13 views
8

मैं नोड v6.2.2 और इलेक्ट्रॉन v1.2.5 उपयोग कर रहा हूँ में एक बच्चे की प्रक्रिया बीज बनती हैं।इलेक्ट्रॉन

मैं एक छोटे से आवेदन है कि मैं इलेक्ट्रॉन के ऊपर एक बने किया है और अब मैं प्रक्रिया fork के लिए एक और नोड प्रक्रिया में कुछ देर तक चल रहा है काम चलाने की आवश्यकता है, लेकिन यह जब मैं देख रहा हूँ काम करने के लिए, लगता है नहीं है ChildProcess वस्तु पर मुझे लगता है कि देख सकते हैं तर्क spawnargs में [0] मैं तो क्या किया मैं बजाय spawn उपयोग करने के लिए कोशिश की है है नोड के बजाय इलेक्ट्रॉन निष्पादन के साथ आरंभ नहीं हो जाता है, लेकिन यह जहाँ तक मैं बता सकता है काम नहीं कर रहा।

: है कोड मैं अपने worker.js फ़ाइल के लिए उपयोग कर रहा हूँ

const {spawn} = require('child_process'); 

var child = spawn("node", ["worker.js"], { stdio: ['inherit', 'inherit', 'inherit', 'ipc'] }); 

const self = {}; 

self.start =() => { 
    console.log("start"); 
    child.send("ping"); 
}; 

और यहाँ:

यहाँ कोड मैं spawn करने की प्रक्रिया (जीवन फ़ाइल ./modules/tester.js अंदर) का उपयोग कर रहा है

process.on("message", (data) => { 
    console.log(data); 
    console.log("pong"); 
}); 

और अंत में यह है मैं इसे कैसे लेने वाली हूँ।

const {app} = require("electron"); 

const tester = require("./modules/tester"); 

app.on("ready",() => { 
    tester.start(); 
}); 

शायद मैं गलत कर रहा हूँ, लेकिन मुझे ऐसा नहीं लगता क्योंकि जब मैंने NodeJS उपयोग कर रहा हूँ यह सिर्फ अच्छा काम करने लगता है है।

मैं कई उदाहरण की कोशिश की है लेकिन उनमें से कोई काम करने के लिए लगता है, एक और संभावना है कि मैं इलेक्ट्रॉन में कुछ खास करने की जरूरत है यह काम करने के लिए, लेकिन मैं नहीं जानता कि है।

+0

तकनीकी रूप से आपके पास मुख्य और प्रस्तुतकर्ता के साथ पहले से ही दो प्रक्रियाएं हैं। क्या मुख्य प्रक्रिया पर चलना बहुत अधिक है? – Josh

+0

@ जोश हाँ, ऐसा इसलिए है, क्योंकि मैं एक डीएनएस लुकअप चला रहा हूं और मुझे इसे तेजी से करने की ज़रूरत है, मेरे पास एक समाधान है हालांकि, जब मैंने एप्लिकेशन चलाया तो मैंने जो किया वह मैं भी एक नया शुरू कर रहा हूं नोडजेएस के बाहरी रूप से उदाहरण और नोडजेएस और इलेक्ट्रॉन आईपीसी के माध्यम से संचार कर रहे हैं। –

उत्तर

3

अंत में, मैंने इसे हल कर लिया है।

तरह से मैं यह बिल्कुल विपरीत कर रहा है हल, NodeJS उत्पादन मशीनों पर उपलब्ध है तो मैं बस एक start.js स्क्रिप्ट कि मूल रूप से एक बच्चे की प्रक्रिया अंडे इलेक्ट्रॉन को चलाने के लिए लिखा था और मैं इस लंबी चलने चल रहा हूँ माता पिता की प्रक्रिया पर कार्य और अंत में मैं दो प्रक्रियाओं के बीच संवाद करने के लिए आईपीसी का उपयोग कर रहा हूं।

+0

क्या आप अभी भी इस "प्री फोर्किंग" विधि का उपयोग कर रहे हैं या क्या आपने कभी काम करने के लिए स्पॉन प्राप्त किया है? – Fraser

+0

@ फ्रेशर वेल, अब मैं इस परियोजना पर काम नहीं करता हूं इसलिए मैंने इसे नहीं बदला है। :) –

4

यदि आप --asar ध्वज के साथ इलेक्ट्रॉन को संकलित कर रहे हैं, based on the docs यह एक समस्या होगी।

वहाँ भी this issue जहां stdio माता-पिता के साथ संलग्न नहीं हो सकता है। तो एक अलग stdio होने का मानना ​​एक सौदा ब्रेकर नहीं है, आप { stdio: 'ignore' } कोशिश कर सकते हैं।

संबंधित मुद्दे