Ant използва waitfor за изпълнение на задача, докато не бъде зададено свойство

Пускам следния код:

 <target name="_queryForRunningJobs">
   <ac:trycatch property="NODE_Reboot.failed">
     <try>

       <queryForRunningJob action="queryForRunningJob" jenkinsbaseURL="${targetRSSURL}" property="isRunningJobs" ignoreJobsLike="${ignore.jobs.like}"/>
       <echo message="${isRunningJobs}"/>
       <fail message="There is at least one job currently running on ${targetRSSURL}">
         <condition>
           <isset property="isRunningJobs"/>
         </condition>
       </fail>
     </try>

     <catch>
       <echo message="NODE_Reboot EXCEPTION: ${NODE_Reboot.failed}"/>
       <property name="reboot.failed.execution" value="${NODE_Reboot.failed"/>  
       <ac:var name="isRunningJobs" unset="true"/>
     </catch>

     <finally>
     </finally>
  </ac:trycatch>
</target>

Бих искал да променя блока за изпробване, така че queryForRunningJob да се случва на всеки час в продължение на да кажем 6 часа, докато isRunningJobs НЕ е зададено, ако е, деактивирам го и чакам един час.

Опитвам се да използвам waitFor, но не мога да го накарам да изпълни персонализираната задача и също така да проверя дали свойството не е зададено.

Някой знае ли как се прави това?


person tophersmith116    schedule 14.09.2012    source източник
comment
Това звучи като добра задача за python или shell скрипт... не толкова за ant.   -  person l4mpi    schedule 14.09.2012
comment
Waitfor трябва да поддържа условие...   -  person coolcfan    schedule 15.09.2012
comment
поддържа условие, но не и в този вложен случай. В крайна сметка току-що поправих това, така че заявката да се случва, след като други тестови цели се изпълнят в други скриптове (на всеки 4-5 часа) и заявката се случва веднъж и се проваля често, но работи за това, от което имах нужда. Благодаря.   -  person tophersmith116    schedule 19.09.2012


Отговори (1)


Можете да използвате условията not и isset в waitfor, за да сте сигурни, че променливата не е зададена.

Що се отнася до проверката дали isRunningJobs е зададено или не, можете да създадете отделна нишка, като използвате parallel.

person MisterStrickland    schedule 25.07.2016