我设置了FME服务器来监视一个用户丢弃JPG的目录。当观察程序检测到JPG时,它会运行一个工作区,将找到的所有文件移动到不同的文件夹(后期处理)。即使文件在第一次运行时被删除,FME服务器似乎也在一遍又一遍地尝试运行工作区。第一次失败后的所有尝试和另一个实例都将添加到提示中。我不确定是什么原因。非常感谢您的帮助。
我正在尝试找出如何在不同的用户文件夹上使用目录监视。其想法是,当他们更新数据集时,它会自动启动作业更新。
我目前正在观察folder1并处理放在日期文件夹中的数据。
文件夹1
每个日期文件夹包含3个子文件夹(A、B、C),每个子文件夹包含许多形状文件。当前系统工作正常,因为所有数据都是在创建日期文件夹时写入的。但这很快就会改变,B和C可以分开写。我只想在B和C都在。
我试图编辑出版物以包含子目录,但这会通知每个形状文件,我也试过用modify代替create,但是modify对文件夹不起作用。只有文件。
我唯一能想到的解决方法是拥有B和C在手前压缩,从而限制了通知的数量。但这不是很优雅。我错过什么了吗?
很多谢谢!
我在FME服务器中设置了一个目录表来查看目录中更改的形状文件。由于每个形状文件有7个组件,更新一个形状文件将触发7个通知,导致订阅工作区运行7次。我希望目录监视发布具有只监视“.shp”文件的选项,以便每个形状文件更改只触发一个通知。有关于这方面的工作吗?
嗨。
我试图读取一个目录与许多TIFF文件,选择最新的目录并将其复制或移动到新目录。
我使用目录和文件路径名格式使用功能阅读器读取文件。
文件名中有日期时间,所以我使用排序器查找最新的文件,然后使用取样器选择其中一些文件。
有人能告诉我怎么把它们写在另一个目录里吗?
多谢
当我上传一个带有侧车文件的文件时,这会触发目录监视为我不想要的每个文件启动一个工作区,并耗尽我的引擎。
可以选择添加文件类型过滤器,这样工作区就只在我上传一个*.shp文件时才启动。
我用FME服务器设置了一个目录监视(类似于
https://knowledge.亚搏在线safe.com/articles/51817/directory-watch-publisher-tutorial-2017.html)
有些数据是fme-server无法处理的,所以我设置了30分钟的取消时间。
此后,主工作区(convert.fmw)将被取消,但通常通过fmeserverjobsubmitter通过concert.fmw被调用的子工作区不会被取消,因此这些作业将作为“僵尸”作业填充作业队列。
我有没有办法摆脱队列中的僵尸工作?
当FME服务器或服务离线4小时后会发生什么。我假设FME服务器上的目录观察程序将丢失这4小时内发生的所有文件更改?
你好!
在FME Server 2017中,当我使用目录监视协议创建发布时,有一个轮询间隔,允许我选择验证路径的频率。如果我把1(或任何数字)放在一个小时、一天或一周内,有没有办法让我知道FME进行验证的确切时间?
如果我一周放5个,FME如何管理验证?7天除以5?
是否可以创建自己的日程安排?有cron表达式时,就像在工作区调度程序中一样。
我读了这篇文章,但没有提到时间:投票
谢谢。
你好!
我是FME服务器的新用户(非常高兴的用户!)我想知道目录监视是否可以做我想做的。
每次将文件添加到我的目录时,我都要运行一个FME工作台。我想每小时看一次目录。我能做到吗?
第二件事,我想做相反的事情。当我在目录中检测到一个特定的文件时,我想中止一个计划的FME工作台。我能做到吗?
谢谢。
谷歌在12月11日宣布,2018, Google Fusion Tables和Fusion Tables API 将于12月3日关闭2019.一些用户可能在2019年8月开始看到错误。关闭服务后,融合表支持将从FME中删除。关于使用FME从Google Fusion表中迁移数据的方法,查看博客帖子 7+Google Fusion Tables备选方案.
本文针对的是FME服务器2017+。有关本文的早期版本,请参阅:教程:目录监视
注意:本教程要求谷歌帐户和Microsoft Excel。
使用标准目录监视配置,每次修改被监视的文件(或文件夹)时,FME服务器都会触发通知。这可能会导致服务器上的处理过载。本教程提供了一种使用空闲时间延迟来优化处理这些迁移的方法。
在下面的例子中,Excel电子表格存储在监视的文件夹中。当电子表格被修改时,通知由FME Server和内容(即文件名,timestamp)存储在数据库表中。该表由按计划运行的工作区检查,并且当每个修改的文件都经过所需的时间时,数据会自动备份到云中的Google Fusion表中。
导航到安装了FME服务器的机器上的文件系统,或者您自己的机器,前提是FME服务器位于同一网络上。创建一个名为“Resource”的新文件夹,并将Project_Inventory.xlsx文件从附件下载复制到新文件夹中。右键单击资源文件夹中的任意位置,然后单击属性。在“共享”选项卡中单击,高级共享,然后启用共享此文件夹,确保权限设置为write,然后单击确定。复制UNC网络路径(例如\ \ KC-LS-WINDOWS \资源),我们将在下一步中需要它,并关闭Properties窗口。此外,根据你电脑里的共享设置,你可能需要点击分享…按钮,然后单击“资源属性”对话框中的“共享”。
创建一个包含Project Inventory.xlsx的共享文件夹,确保权限设置为“完全”
登录您的FME服务器,并在侧菜单栏上的通知下,选择出版物。单击New,并将出版物命名为“同步工具”,然后添加一个新主题以发布到名为“同步工具”的出版物中。选择目录监视协议,对于要监视的目录,选择“指定位置”,粘贴上一步复制的UNC网络路径。监视修改操作(删除创建和删除)。最后,将轮询间隔设置为1分钟,你可以把它作为默认值,但是为了测试的目的,较低的间隔可以更快地调试。单击“确定”创建出版物。
在FME服务器中创建名为sync_tool的新目录表发布,将其设置为监视资源目录。
打开项目目录到地图.fmw (工作空间α1)在FME工作台中。此工作区将Excel数据写入存储在云中的Google Fusion表。有关Google Fusion表的更多信息,请参阅用户文档.
在Navigator窗格中的User Parameters中,在发布的参数下,双击[SourceDataset_xlsxr],将路径设置为“\\youruncpath\resource\project inventory.xlsx”,一定要包括报价。
双击SQLExecutor以修改参数。我们将需要登录到我们的个人谷歌帐户并授权FME。要做到这一点,在SQLExecutor中选择参数,在Google Fusion Table空间参数对话框中,单击(…)。在OAuth身份验证窗口中,使用您自己的Google帐户凭据登录以管理Fusion表,然后单击“允许”。您现在在谷歌Fusion Tables空间参数对话框中有了一个刷新令牌,复制此令牌以避免在以后的步骤中重新进行身份验证。单击“确定”退出SQLExecutor参数
双击[GoogleToken]用户参数并粘贴到Fusion表Refresh Token中,以连接到您自己的帐户。
项目库存到工作区工作流亚搏在线
发布到FME服务器,创建一个名为Project_Inventory的新存储库,然后向作业提交者服务注册。(注意:确保取消选中“上载数据文件”,以便Excel文件不会上载到服务器)
在FME工作台打开项目库存状态.fmw (工作区2),当目录监视协议发送修改触发器时,此工作区将运行。通知消息的详细信息(即文件名,时间戳)存储在数据库中,在本例中,这将是一个Google Fusion表。
这个工作区使用一个名为GoogleToken的用户参数设置,以加快SQLExecutor和写入器中的身份验证过程,这与最后一步的过程相同。单击googletoken published参数并粘贴刷新令牌。
发布工作区FME服务器,在项目库存库中,并使用通知服务注册工作区。单击Edit并选择sync_tool订阅主题。(注意:您可能会收到警告消息-此工作区使用自定义格式,需要提供给FME服务器-单击“是”接受。)
项目清单状态.fmw(工作区2)工作流亚搏在线
为了让工作区在FME服务器上运行自定义转换器,我们需要上传自定义转换器。在FME服务器中,转到“资源”并导航到“引擎”文件夹中的“格式”文件夹。点击上传并浏览到DIRECTORY_WATCH_READER.fds,它位于本教程开始时下载的文件夹中。
Upload the DIRECTORY_WATCH_READER.fds to the Formats folder in FME Server
回到FME工作台打开project_inventory_sync.fmw (工作区3),此工作区用于检查数据库(Google Fusion表)中是否有修改过的文件,并在必要时将其发送给用户进行处理。
在用户参数中,双击[GoogleToken]并粘贴刷新令牌。在FMEServerJobSubmitter中,连接到您的FME服务器。Then select the Project_Inventory repository and select the project_inventory_to_map.fmw workspace,单击左下角的刷新图标,将项目“库存”中的参数输入到“地图”中。这将启用项目目录到地图.fmw(工作空间α1)跑一次project_inventory_sync.fmw (工作区3)已经跑了。
发布到同一个存储库中的FME服务器,并向作业提交程序注册。
project_inventory_sync.fmw (workspace #3) 亚搏在线workflow
在FME工作台打开DB_Loader.fmw (工作空间# 4),此工作区在Google Fusion数据库中创建两个表。
在用户参数下的Navigator窗格中,双击[sourcedataset_xlsxr]并浏览到共享资源文件夹并添加project inventory.xlsx文件
下一步,双击[SourceDataset_csv]并浏览到文件下载附带的名为project_inventory_file_status.csv的csv文件。
然后像以前一样更新[GoogleToken]然后运行工作区。翻译之后,请登录您的Google Drive帐户以确保工作区正确运行,你应该看到两个文件,项目库存和项目库存文件状态。
db_loader.fmw(工作区4)工作流。亚搏在线创建两个Google Fusion表
最后一步是设置一个时间表来检查跟踪数据库。这可以设置为每隔几分钟运行一次。此计划将运行project_inventory_sync.fmw (工作区3),它检查跟踪数据库的最后修改时间。如果大于工作区内设置的空闲时间,数据将被迁移。
在FME服务器中,转到“计划”页,单击“新建”以创建名为“项目库存同步”的新计划,并创建名为“项目库存”的新类别。立即检查运行,然后将其设置为每2分钟重复一次,或者设置为希望重复的频率。
然后将存储库设置为Project_Inventory并选择project_inventory_sync.fmw(工作区3)单击“确定”以设置计划。将公开一个已发布的参数部分,如果你愿意,你可以调整等待的时间,这是更新Excel文件并使其处于空闲状态后所需的等待时间。一旦满足这个条件,数据将被同步到Google Fusion表。也,确保刷新令牌正确。单击“确定”开始计划。
在FME服务器中,单击通知,然后单击主题监视选项卡。对于要监视的主题,添加sync_tool。这将在每次修改文件时发送通知。确保此页面保持打开状态,以便继续主题监视。
在这一点上,所有必要的步骤都已经到位,可以为电子表格数据建立一个优化的备份系统。要对此进行测试,请尝试以下步骤:
打开Google Drive并打开您创建的两个Fusion表文件,项目库存和项目库存文件状态。要做到这一点,右键点击文件,然后用>Google Fusion表打开。
在Excel(project_inventory.xlsx)中打开Excel文档,然后输入新行:
100007检修孔更换49.2755567-123.0576200
保存Excel文件,确保将其保存到共享资源文件夹,文件扩展名为.xlsx。这将触发目录监视协议向同步工具主题发布修改。如果在一个新的FME服务器窗口中打开作业,项目“inventory\u status.fmw”工作区将运行,然后根据你的时间表,项目“inventory\u sync.fmw”将运行,取决于日程安排如何符合您的更新,为了更新google fusion表,您可能需要等待调度运行两次。根据计划的设置方式和等待秒数参数的设置,最多等待5分钟,使此进程运行。在分配的时间过后,刷新两个Google Fusion表以查看更新。
在Excel中修改项目inventory.xlsx文件时在FME服务器中进行主题监视
使用空闲时间延迟对于在更新文档时保存文档备份非常有用。只有当工作区在本地文档中检测到一段时间后发生更改时,工作区才会运行。这释放了宝贵的服务器引擎,只在需要时运行工作区,而不是按照计划运行。创建单独的状态表对于确保预期对本地文件进行更新也很有用,尤其是当文件在多个用户之间共享时。
教程概述:目录观察γ 上一页:目录监视发布者 |当前:具有空闲时间延迟的目录监视发布服务器(高级)
当我点击电子邮件中的压缩文件时,我得到404错误,同时进行目录观察发布者教程(2016年)。我使用的是2017 FME服务器。
本文是针对FME服务器2017的。有关本文的早期版本,请参阅:教程:目录监视
目录监视发布者允许您让FME服务器监视一个目录,当一个新文件被移到目录中时,包含文件路径的通知消息将发送到主题。在这里,工作区可以使用翻译中的文件。
在这个例子中,我们将在Temp共享资源文件夹“input”和“output”中创建两个目录。我们将设置FME服务器来查看新文件的“输入”目录,当上传一个新文件时,将运行父工作区。父工作区将把文件传递给子工作区,子工作区将把文件转换为不同的格式。然后将此转换的输出复制到“output”目录,并将(可选)发送一封电子邮件,其中包含指向人员列表的下载链接。
打开FME服务器Web界面并登录。在侧边菜单栏上单击资源,然后双击临时资源打开它。单击“新建文件夹”按钮并调用新文件夹转换工具.在转换工具文件夹中,创建两个名为输入和输出
使用输入和输出文件夹转换FME服务器中的刀具目录
从侧面菜单栏,转到通知并选择发布选项卡。单击“新建”以创建名称为的新出版物Convert_Tool(标题案例)。选择目录监视作为协议,然后选择要发布的主题以创建名为转换工具(小写)
要查看目录,单击“…”,然后选择Temp > convert_tool > Input
过滤器,只监视创建操作并将轮询间隔更改为一分钟。单击“确定”创建出版物。
发布转换工具参数在FME服务器
主题监视页面允许您查看发布到主题的消息。请注意,您需要一个支持WebSockets的浏览器才能使用这个功能。检查您的浏览器是否支持WebSockets.
回到通知中,单击主题监视选项卡。单击“要监视的主题”下拉菜单,并选择转换工具的话题,一旦你选择了主题,只要此页面仍然打开,它将自动开始监视。
使用不同的web浏览器选项卡,转到“资源”页,并将两个文件上传到前面创建的输入目录(Temp > convert_tool > input)。一分钟后,在主题监控页面,您将看到两条消息,每上传一个文件
主题监控convert_tool在FME服务器
处理提供附件(例如电子邮件,目录监视)是使用一个FeatureReader转换器来读取数据,然后对其进行处理。另一种非常适合目录监视发布的模式是使用FMEServerJobSubmitter转换器来调用子工作区来转换数据;当工作区完成时,父工作区可以将数据复制到目录中,通过电子邮件发送数据或更多的链接。
对于这个示例,我们将利用下载部分的zip文件中包含的工作区;也就是说,'easytranslator 2.fmw',和“convert.fmw”。“easyTranslator2.fmw”工作区,(子工作区)将用于将dwg文件转换为形状格式,然后为新创建的文件创建一个zip。“convert.fmw”工作区,(父工作区),然后将压缩文件复制到一个FME服务器资源目录,供用户使用文件复制编写器访问。
Note: easyTranslator2.fmw differs from the original easyTranslator.fmw,它由示例存储库中的FME Server提供。
打开easyTranslator2.fmw工作区,并将该工作区作为作业提交者服务发布到示例存储库中的FME服务器。
打开convert.fmw工作区,然后打开FMEServerJobSubmitter变压器的属性。选择与FMEServer的连接或嵌入连接参数。对于存储库选择示例,工作区选择easyTranslator2.fmw。
更新作业参数以匹配以下图像:
参数 | 价值 |
SourceDatase_GENERIC | source_path |
源格式 | 源代码格式 |
目的地格式 | 输出格式 |
DestDataset_GENERIC | $(fme_sharedesource_temp)/convert_tool/output/@value(_rootname).zip |
通用的,通用的 | 翻译的数据 |
FME工作台convert.fmw中的fmeserverjobsubmitter参数
单击“确定”保存参数。
将工作区发布到FME服务器,输入连接参数,单击Next。将工作区发布到示例存储库,单击Next。对于上传连接,检查FME服务器连接并单击next。在注册服务步骤中,取消选择作业提交者并选择通知服务。通过单击通知服务旁边的“编辑…”按钮配置通知服务:
使用通知服务将convert.fmw发布到fme服务器,并在fme工作台中转换工具主题
您可能会或不会看到一个警告框出现—将创建新的通知主题—单击yes接受并继续
回到FME服务器,转到资源页面,并导航到Temp > convert_tool >输入。将提供的DWG文件之一上载到输入目录。等待一分钟左右,然后确认文件现在在temp>convert_tool>output文件夹中。你应该看到一个zip文件-下载它,你会看到一个里面的形状文件。
注意:如果您没有看到zip文件,检查作业是否运行以及状态如何。转到jobs并单击最新的convert.fmw job以读取作业日志。
将文件上载到FME服务器中的输入后,输出中已转换文件
您可以在FME服务器资源目录中提供一个指向zip文件的链接,并通过电子邮件发送该链接,从而进一步发展。
通过转到通知页面上的Topics选项卡创建一个新主题。名字的话题email_results
从Subscriptions选项卡,单击“新建”创建新的电子邮件订阅。
在FME服务器上订阅电子邮件,设置为与Gmail帐户一起使用。
请看发送电子邮件教程有关设置电子邮件订阅的详细信息。
也,如果你使用Gmail账户,你可能需要这样做为FME服务器创建特定于应用程序的密码或允许不太安全的应用程序访问您的gmail帐户作为大纲这篇文章.
为了配置发送电子邮件的工作区,必须首先生成有效的FME服务器令牌。在FME服务器的右上角单击附加到用户名的下拉菜单,并选择Manage Token。复制列出当前令牌的数字和字母字符串。
管理令牌菜单中的FME服务器令牌
Back in FME Workbench in the convert.fmw workspace.通过右键单击书签并选择“启用书签中的所有对象”,启用电子邮件程序书签中的对象。
在导航面板中,在用户参数>发布参数下,点击主机名输入FME服务器的主机名,然后点击令牌输入您的FME服务器令牌。
然后点击电子邮件并输入您希望接收通知更新的电子邮件,每次将文件上载到输入文件夹时。
在FME工作台的convert.fmw中要编辑的已发布参数
发布到FME服务器,在注册服务界面,单击通知服务旁边的“编辑…”。展开“作业完成时通知”,将文章设置为有关成功的主题:至email_results并设置Post Data From: to目标文本文件.完成发布
使用通知服务将convert.fmw发布到fme服务器,并在fme workbench中通过电子邮件发送结果主题
打开FME服务器Web界面>资源>温度>转换工具>输入。上载提供的一个dwg文件输入目录。您应该收到一封电子邮件,其中包含下载zip文件的链接。发送邮件需要几分钟时间,如果你5分钟后还没收到邮件,仔细检查作业日志和电子邮件参数。
成功转换通过电子邮件发送的结果
如果您经常从外部获得不同的格式,使用目录监视来转换文件是将文件格式更改为组织有用格式的有效方法。这样,所有文件都将以相同的方式转换,原始文件和新文件将包含在一个位置。接收电子邮件更新,这对于监视文件上载很有用,以及在没有访问FME服务器的权限时下载文件。
此处使用的数据源于温哥华市,不列颠哥伦比亚省。它包含根据开放政府许可证(温哥华)获得许可的信息。
教程概述:目录观察|当前:目录监视发布者|下一个:带有空闲时间延迟的目录监视发布程序(高级)
FME服务器通知服务能够监视数据存储资源中的文件活动。创建文件后,修改或删除,服务器可以触发一个通知,该通知将向FME服务器主题发布关于该活动的消息。此消息将包含有关文件的信息,包括文件路径。从这里,工作区可以获取文件,翻译/变换,并将结果发送回用户。
目前,这包括以下类型的存储:
您好,我们在生产中使用FME服务器(v2015)观察到一种奇怪的行为。
发布服务器只监视子文件夹标志设置为“是”的主文件夹(对于新文件)。
主文件夹下的几个子文件夹(或多或少20个)。
有时,观察者会在没有通知的情况下停止工作。
如果我们重置FME服务,它会重新开始工作几个小时,然后又会停止工作。
我们只上传zip文件在文件夹中。
不幸的是,一个月左右我们不能升级到新版本。
如何解决这个问题的建议?
子文件夹太多?
其他建议或最佳实践?
蒂亚
罗伯托