Управление выполнением скрипта Jython из Java - PullRequest
2 голосов
/ 22 октября 2008

Я пытаюсь контролировать выполнение сценария Jython из Java и выполняется через вызов PythonInterpreter.exec (). Скрипт содержит вызовы классов, определенных в Java. Я буду называть эти классы «командами» для обсуждения здесь. Команды также могут быть запущены на другом компьютере через RMI.

Поскольку выполнение команд занимает некоторое время, я хочу проверить ход выполнения команд на стороне вызывающей стороны, например, какой процент выполнения завершен. Я могу предоставить метод getProgress () для классов, но доступ к этому методу кажется невозможным, поскольку PythonInterpreter не разрешает вызывающей стороне доступ к объекту команды, выполняющемуся внутри него.

Есть идеи, как это сделать?

1 Ответ

2 голосов
/ 23 октября 2008

мои 0,10 евро: (это не просто)

Построить фабрику, как описано в

http://wiki.python.org/jython/JythonMonthly/Articles/September2006/1

и Java-интерфейс, представляющий класс сценария (IJScript) (включая методы run () и getProgress ())

ваши сценарии должны выглядеть следующим образом:

class xyscript(IJScript) :

def __init__(self) :
   ...
def run(self) :
   ...
def getProgress(self) :
   ....

запускать ваши скрипты при доступе к интерфейсу IJScript (Java Interface) (посмотрите на пример сотрудника)

...