How to assign Job-Agent to Web Services?

RayJhongRayJhong RapidMiner Certified Analyst, Member Posts: 11 Contributor II
edited December 2018 in Help

Hi There,

 

As i know, since RM8, all processes were executed by Job-Agents. My question is if using Web-Service, how to make them executed on a certain Job-Agent? If so, we will be able to set permissions by each queue for users/groups.

 

Things I've tried were, I have a process called "ReadCsv.rmp" deployed as a web service, an there are two queues on my RM8 Server as below:

Screen Shot 2018-03-12 at 1.42.17 PM.pngI'm going to execute "ReadCsv.rmp" by using a user  called "csvusr", which is obviously not existed on each Permitted groups above, and I expected an error or permission deny message. HTTP request shown below:

curl --user csvusr:csvusr123456 --upload-file /Users/user/Desktop/test.csv http://VM-Rapidminer:8080/api/rest/process/ReadCsv?

 But it successfully executed, it seems like processes executed from Web Services does not take permission settings on Queues, and neither do I know which queue execute "ReadCsv.rmp" this process.

 

Back to the subject, I would like to know how to make a web service execute on certain Queue/Job-Agent?

Any suggestion would be appreciated.

 

Sincerely,

Ray Jhong.

Tagged:

Answers

  • RayJhongRayJhong RapidMiner Certified Analyst, Member Posts: 11 Contributor II

    According to my understanding, web services and web apps cannot run distributedly yet, right?

  • Edin_KlapicEdin_Klapic Moderator, Employee, RMResearcher, Member Posts: 299 RM Data Scientist

    Hi @RayJhong,

     

    That is correct. In the current architecture only the central node (i.e. RapidMiner Server itself) is always running whereas the JobAgent only spawns Job containers for running processes when requested.

    Especially when using webservices you want a short response time and not wait until a Job container has been started.

     

    Happy Mining,

    Edin

  • SGolbertSGolbert RapidMiner Certified Analyst, Member Posts: 344 Unicorn

    Hi @RayJhong,

     

    you could use the Schedule Process operator within the web service/web app, in order to delegate a heavy process to a job agent. You would have to fetch the results later, but it's still a good way to execute a process which may fail through HTTP.

     

    Kind regards,

    Sebastian

Sign In or Register to comment.