阻止资源

阻止对资源的访问。

命令可用性: 本地 IBM RPA SaaS 和 IBM RPA

Description

此命令将创建一个内部队列,且在该队列中分配的每个请求都是针对同一锁定。 释放锁定后,下一个请求会再次将其锁定。 您可以查看和释放 IBM RPA Control Center上的活动锁定。 有关更多信息,请参阅活动锁定

脚本语法

IBM RPA 的专有脚本语言的语法与其他编程语言类似。 该脚本语法在脚本文件中定义命令的语法。 您可以在 IBM RPA Studio的 脚本 方式下使用此语法。

waitLock --global(Boolean) --name(String) [--timeout(TimeSpan)] (Boolean)=success

依赖关系

  • 您必须使用解锁功能部件命令终止此命令的作用域。
  • 您需要两个或更多 Bot Runtime 来同时运行脚本。

输入参数

下表显示了此命令中提供的输入参数的列表。 在表中,您可以看到在 IBM RPA Studio的脚本方式及其 Designer 方式等效标签中工作时的参数名称。

设计器方式标签 脚本方式名称 必需的 接受的变量类型 Description
全局 global Required Boolean 启用以创建在同一 IBM RPA 环境中运行的每台机器都可访问的锁定。 如果不启用此功能,那么将仅在源机器上创建锁定。
名称 name Required Text 锁定的名称。
超时 timeout Optional Time Span, Number, Text 用于持续验证指定锁定是否可用的最长等待时间。
缺省超时值为 5 秒。 您也可以使用设置超时命令来定义脚本的缺省超时值。

输出参数

设计器方式标签 脚本方式名称 接受的变量类型 Description
成功 success Boolean 如果创建锁定,那么返回 True;否则返回 False

示例

以下代码示例演示如何锁定资源并尝试在资源被锁定时对其进行访问。 LogMessageLock 将创建样本锁定。 阻止资源命令将阻止对资源的两次访问,第二次请求将被第一个锁定阻止。 第一个锁定在解锁功能部件命令运行后结束。

defVar --name successfullyEnteringLock --type Boolean
defVar --name lockName --type String
// Assigns the lock name to 'LogMessageLock'.
setVar --name "${lockName}" --value LogMessageLock
// Create a lock to the resources into your scope. It create a global lock to these resources.
waitLock --global  --name "${lockName}" --timeout "00:00:52" successfullyEnteringLock=success
	// Logs the message to state if it enter the lock.
	logMessage --message "Success to enter the \"${lockName}\" lock for the first time: ${successfullyEnteringLock}" --type "Info"
	// Tries to create a new lock to 'LockMessage' before the Unlock Feature command releases it. In this case, it isn't possible because the 'LogMessageLock' still locked.
	waitLock --global  --name "${lockName}" --timeout "00:00:52" successfullyEnteringLock=success
		// Logs the message to state if it enter the lock.
		logMessage --message "Trying to access the \"${lockName}\" lock." --type "Info"
		// Unlock the lock.
	release
	// Logs the message to state if it enter the lock.
	logMessage --message "Success to enter the \"${lockName}\" lock for the second time: ${successfullyEnteringLock}" --type "Info"
	// Unlock the lock.	
release

限制

仅适用于本地环境中的 IBM RPA : 此命令可能无法在 Redis V 3.0.504上正常工作。 有关更多信息,请参阅 Redis 导致 Block Semaphore 和 Block Resource 命令出现错误行为