<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
	<title type="html"><![CDATA[Серый форум &mdash; WSH, JS: Использование мютексов.]]></title>
	<link rel="self" href="https://forum.script-coding.com/extern.php?action=feed&amp;tid=8484&amp;type=atom" />
	<updated>2013-07-22T07:58:38Z</updated>
	<generator>PunBB</generator>
	<id>https://forum.script-coding.com/viewtopic.php?id=8484</id>
		<entry>
			<title type="html"><![CDATA[Re: WSH, JS: Использование мютексов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73978#p73978" />
			<content type="html"><![CDATA[<div class="quotebox"><cite>putrsa пишет:</cite><blockquote><p>...<br />- поиск имени скрипта в параметрах запуска хостов тоже не подходит (так как часто разные скрипты работают с одними и теми же данными и необходим запрещающий сигнал &quot;сейчас данные заняты&quot; хранить где-то список всех искомых скриптов тоже не подходит - при создании нового скрипта этот список нужно обновить и распространить по всем рабочим станциям)</p></blockquote></div><p>putrsa,</p><p>1. Используйте унификацию наименования скриптов одного семейства - например, у всех один префикс MyScript_ReadData, MyScript_WriteData и т.д.<br />При запуске очередного скрипта в параметрах уже запущеных ищите вхождение MyScript_.<br />При таком подходе количество вновь создаваемых скриптов неограничено без каких-либо дополнительных телодвижений.</p><p>2. В каком виде хранятся у Вас данные, если самому приходится анализировать заняты они или нет?</p>]]></content>
			<author>
				<name><![CDATA[Slav]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=16491</uri>
			</author>
			<updated>2013-07-22T07:58:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73978#p73978</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH, JS: Использование мютексов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73889#p73889" />
			<content type="html"><![CDATA[<p><strong>putrsa</strong>, можно ещё при старте сценария с помощью WMI-класса <span style="color: blue">Win32_Process</span> опрашивать список процессов <em>WSCRIPT.EXE/CSCRIPT.EXE</em> на предмет наличия у свойства <strong><span style="color: blue">CommandLine</span></strong> соответствующего содержания.</p>]]></content>
			<author>
				<name><![CDATA[Dmitrii]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=13351</uri>
			</author>
			<updated>2013-07-19T03:37:14Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73889#p73889</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH, JS: Использование мютексов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73857#p73857" />
			<content type="html"><![CDATA[<p>DynamicWrapperX - 100% то, что нужно.<br />файл блокировки тоже в таком варианте подойдет</p>]]></content>
			<author>
				<name><![CDATA[putrsa]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25443</uri>
			</author>
			<updated>2013-07-18T05:20:10Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73857#p73857</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH, JS: Использование мютексов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73853#p73853" />
			<content type="html"><![CDATA[<p>Просто файл блокировки необходимо открывать на добавление (mode=8) и не закрывать до окончания работы (операции).<br />При повторном одновременном запуске&nbsp; скрипта возникнет ошибка: файл занят.<br /></p><div class="codebox"><pre><code>var fso = new ActiveXObject(&quot;Scripting.FileSystemObject&quot;)
f_File=fso.OpenTextFile(&quot;main.flag&quot;,8,true)</code></pre></div><p>Данный подход можно использовать для создания тригеров(счетчиков) <br /></p><div class="fancy_spoiler_switcher"><div class="fancy_spoiler_switcher_header"><strong>+</strong>&nbsp;Тригер--Счетчик</div><div class="fancy_spoiler"><div class="codebox"><pre><code>EDNo_(&quot;\\\\server\\share\\EDNO&quot;)

function EDNo_(fTriger)
{
  var start = false
  var fFlag =  fTriger + &quot;.flag&quot;
  var flag =null
  while(!start)
  {
    try
    {
      flag = fso.OpenTextFile(fFlag, 8, true)
      start = true
    }
    catch(e)
    {
      _print([&quot;Ошибка открытия нумератора&quot;, fFlag, e.number + &quot; &quot; + e.description].join(&quot;\n&quot;))
      _sleep(500)
    }
  }
  var fnew = !fso.FileExists(fTriger)
  var EDNo = 0
  if(!fnew)
  {
    var oFile = fso.OpenTextFile(fTriger, 1, true)
    EDNo = 1 * oFile.ReadLine()
    oFile.Close()
  }
  EDNo = 1 + EDNo
  var oFile = fso.OpenTextFile(fTriger, 2, true)
  oFile.Write(&quot;&quot; + (EDNo % 25000))
  oFile.Close()
  flag.Close()
  return(EDNo)
}</code></pre></div></div></div>]]></content>
			<author>
				<name><![CDATA[badik]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=21834</uri>
			</author>
			<updated>2013-07-18T01:53:42Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73853#p73853</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[Re: WSH, JS: Использование мютексов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73842#p73842" />
			<content type="html"><![CDATA[<p>Конечно можно, через компонент DynamicWrapperX.<br />Вот, пожалуйста: <a href="http://www.script-coding.com/dynwrapx.html">http://www.script-coding.com/dynwrapx.html</a></p>]]></content>
			<author>
				<name><![CDATA[max7]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=10498</uri>
			</author>
			<updated>2013-07-17T17:48:25Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73842#p73842</id>
		</entry>
		<entry>
			<title type="html"><![CDATA[WSH, JS: Использование мютексов.]]></title>
			<link rel="alternate" href="https://forum.script-coding.com/viewtopic.php?pid=73834#p73834" />
			<content type="html"><![CDATA[<p>Борюсь с повторными запусками скриптов.<br />можно ли как-то вызывать API функции (OpenMutex, CreateMutex...) из скрипта? <br />- использование файла блокировки не подходит по причине неудаления при крахе скрипта<br />- поиск имени скрипта в параметрах запуска хостов тоже не подходит (так как часто разные скрипты работают с одними и теми же данными и необходим запрещающий сигнал &quot;сейчас данные заняты&quot; хранить где-то список всех искомых скриптов тоже не подходит - при создании нового скрипта этот список нужно обновить и распространить по всем рабочим станциям)</p>]]></content>
			<author>
				<name><![CDATA[putrsa]]></name>
				<uri>https://forum.script-coding.com/profile.php?id=25443</uri>
			</author>
			<updated>2013-07-17T11:44:38Z</updated>
			<id>https://forum.script-coding.com/viewtopic.php?pid=73834#p73834</id>
		</entry>
</feed>
