Install everything needed to run the extractor:
1. Install python
instructions: https://docs.python.org/2/using/windows.html
make sure “C:\Python27\” is on path (start->right click on “computer”->properties->advanced->environment variables), edit PATH if necessary
2. Install pip
download file “get-pip.py” from https://pip.pypa.io/en/latest/installing.html#id7
open cmd as admin
python get-pip.py
after install is done, type pip in the cmd prompt, if “not recognized” error, add “C:\Python27\Scripts" to path (like described in 1)
3. Install pika, requests
pip install pika
pip install requests
4. Install pymedici
clone from the repo: https://opensource.ncsa.illinois.edu/stash/projects/MMDB/repos/pymedici/browse
python setup.py install
5. Install any additional software/packages required
6. Test that the extractor works
Run it from the cmd prompt and watch the outputs to be sure it is working properly. Also advised to upload some files to Medici and observe that the extractor is receiving, processing and uploading the results back correctly.
Build Windows Service:
1. Prepare a simple bat file to run extractor, like:
c:
cd C:\Program Files\ExtractorServices\cellprofiler
python cellprofiler_extractor.py
2. Convert bat file to exe file
For that can bat_to_exe_converter can be used: http://www.computerhope.com/issues/ch000435.htm
3. Get svrany.exe
It can be found on Windows server 2003 resource kit tools: http://www.microsoft.com/en-us/download/details.aspx?id=17657
4. Use install.bat to build a Windows Service:
install.bat can be found here: https://opensource.ncsa.illinois.edu/stash/projects/CBI/repos/cyberintegrator-2/browse/edu.uiuc.ncsa.cyberintegrator.server.feature/root/service
It assumes srvany.exe is on a subdirectory called service (create this subdirectory and copy srvany there)
Edit install.bat file changing NAME, DESC and EXE to reflect the name, description and executable file of your service
5. Check that the correspondent queue was created on the rabbitmq server that the extractor connects to:
Delete queue first if already exists and no one else is using
If not working, try checking log errors in the event viewer (find it by typing eventviewer on the start search box) under windows logs, in system or in application and filtering for errors (filter current log on right panel, check box for “Error”) which have “event sources”=Service control manager. (http://stackoverflow.com/questions/1067531/are-there-any-log-file-about-windows-services-status)
6. Change windows service configuration to “delayed start”
Open “services” from win start menu (type services on the start search box and click enter)
Right click on the extractor->properties
Change startup type to "automatic (Delayed Start)"
7. Restart VM
Do not login and see if the queue was created in the rabbitmq; it will take a couple of minutes because of the “delayed start”
Delete queue first if it already exists to be sure the extractor service can create the queue if necessary