标签: batch-processing

部分失败时的executeBatch行为

我有一个 java 1.6 应用程序,它使用批量插入使用 jdbc 驱动程序在 Oracle 数据库中插入记录。正如您所知,Statement 对象有一个名为executeBatch() 的方法,我们使用它来进行批量更新。它有一个 int 数组的返回类型,其中包含每个记录的执行结果。但如果出现错误,它也会抛出 BatchUpdateException,我们也可以从中获取结果 int 数组。我的问题是在什么错误情况下我应该期望 BatchUpdateException 以及何时我应该期望没有抛出异常,但对于某些记录我会失败。

注意:问题专门针对 Oracle JDBC。为了更清楚地说,我见过这样的情况:执行executeBatch()后,我没有得到BatchUpdateException,但某些插入语句失败了。我的问题是在什么情况下会发生这种情况?

这是Statement.executeBatch()方法的返回javadoc。根据这里的一般观点,当一个条目失败时,执行会抛出 BatchUpdateException,然后在这种情况下,我们可以预期返回数组中的某些条目会失败。

      * @return an array of update counts, with one entry for each command in the
 *         batch. The elements are ordered according to the order in which
 *         the commands were added to the batch.
 *         <p>
 *         <ol>
 *         <li> If the value of an element is >=0, the corresponding command
 *         completed successfully and the value …
Run Code Online (Sandbox Code Playgroud)

java oracle jdbc batch-processing

5
推荐指数
1
解决办法
1万
查看次数

批量发送“ENTER”键到正在运行的程序

我有一个“老好人”fortran.exe文件(无法访问代码),我需要使用批处理文件执行数百次。

然而,在 fortran 程序结束时,它打印"Press ENTER to exit",当然会中断批处理文件的执行......

有没有办法将 发送{ENTER}到正在运行的程序?

windows cmd batch-file batch-processing

5
推荐指数
1
解决办法
4万
查看次数

以管理员身份运行bat文件时不生成日志文件

当我以管理员身份运行 bat 文件时,我在生成日志文件 (Export_Files_Logs.log) 时遇到问题。但是当我双击bat文件时。生成日志文件。知道为什么会发生这种情况吗?

FOR %%f IN (D:\batch\outbound\Delta_Sync\Data\Log\*.log) DO type %%f >> Export_Files_Logs.log & echo. >> Export_Files_Logs.log
pause
Run Code Online (Sandbox Code Playgroud)

windows batch-file batch-processing

5
推荐指数
1
解决办法
1405
查看次数

Firestore 多个定时批量提交挂起,没有任何响应

我在尝试定期更新文档集合或尝试写入大量数据时遇到 Firestore 批量提交问题。Firestore 似乎只是冻结并且不会发送响应。在这两种情况下,都会遵守最大批量大小 (500) 和文档大小的建议。例如,使用 cron-jobs,提交会成功运行一段时间,然后完全停止,没有任何错误跟踪。

例如,下面的代码在开始出现错误之前会连续执行 6 次。

public updateCoins = async () =>{
  const markets = await this.getMarkets('usd')
  const maxCount = Math.round(markets.length/this.FB_BATCH_SIZE) + 1
  for(let i=0; i< maxCount; i++){
    const marketBatch = markets.slice(i*this.FB_BATCH_SIZE, (i+1)*this.FB_BATCH_SIZE  > markets.length ? markets.length : (i+1)*this.FB_BATCH_SIZE)
    const batchCoins = this.fbService.db.batch()
    marketBatch.map((entry)=>{
    const coin = this.mapCoin(entry)
      if(coin){
        const coinRef = this.coinsCol.doc(coin.id);
                    batchCoins.set(coinRef,coin,{merge:true})
      }
    }) 
            
    await batchCoins.commit()
    .then(()=>{
      console.log('Commited coins batch update')
    }).catch((_e)=>{
      console.log('Exception saving coins',_e)
    })
  }
}
Run Code Online (Sandbox Code Playgroud)

batch-processing firebase typescript google-cloud-firestore

5
推荐指数
0
解决办法
392
查看次数

在 PowerShell 中向 SSH 会话发送命令并在 TextBox 中接收输出

我需要向多个设备发送命令列表。对于每个 IP,使用用户密码文本框中给定的凭据打开 SSH 连接,运行所有命令并将输出返回到输出文本框。

包含凭证、IP、命令和输出文本框的窗口的屏幕截图

通常我会使用

plink.exe -ssh admin@172.16.17.18 -pw PassW0rd "command"
Run Code Online (Sandbox Code Playgroud)

不幸的是,远程主机不允许我这样做:

Sent password
Access granted
Opening session as main channel
Opened main channel
Server refused to start a shell/command
FATAL ERROR: Server refused to start a shell/command
Run Code Online (Sandbox Code Playgroud)

但是,如果我在不传递命令的情况下进行连接:

Sent password
Access granted
Opening session as main channel
Opened main channel
Allocated pty (ospeed 38400bps, ispeed 38400bps)
Started a shell/command


Welcome to XXX
System_Name>#
Run Code Online (Sandbox Code Playgroud)

现在,我可以输入命令并执行它们。我尝试了 PoshSSH,它可以让我连接,但任何命令都会超时。

我将 IP 框和命令框的行分解为字符串数组并进行 for 循环。然后我尝试了几种方法,有成功Start-JobSystemDiagnostics.Process* …

ssh powershell plink batch-processing winforms

5
推荐指数
1
解决办法
1万
查看次数

AWS Sagemaker 使用镶木地板文件进行批量转换作业?

我正在尝试使用镶木地板数据文件运行批量转换推理作业,但找不到任何内容。到处都说批量转换仅接受文本/csv 或 json 格式类型。出于测试目的,我确实尝试在 AWS 帐户内使用 lambda 函数来调用 parque 数据,但批量转换作业从未成功。出现 ClientError: 400,解析数据时出错。

request = \
        {
            "TransformJobName": batch_job_name,
            "ModelName": model_name,
            "BatchStrategy": "MultiRecord",
            "TransformOutput": {
                "S3OutputPath": batch_output
            },
            "TransformInput": {
                "DataSource": {
                    "S3DataSource": {
                        "S3DataType": "S3Prefix",
                        "S3Uri": batch_input

                    }
                },
                "ContentType": "application/x-parquet", 
                "SplitType": "Line",
                "CompressionType": "None"
            },
            "TransformResources": {
                "InstanceType": "ml.m4.xlarge",
                "InstanceCount": 1
            }
        }
    client.create_transform_job(**request)
    return "Done"
Run Code Online (Sandbox Code Playgroud)

目前,我正在尝试使用 parque 数据文件在本地运行 sagemaker 批量转换作业。我有可以在本地终端中运行以“服务”的 docker 映像,并且可以使用 REST API 服务 Postman 从“localhost:8080/incalls”使用“二进制”输入函数上传 parque 数据文件来调用数据。它工作正常,我可以看到邮递员体内填充的数据。但是,我无法使用 parque 数据进行批量转换。

有没有人成功使用 parquet 文件使用 sagemaker 批量转换进行转换和预测?

transform batch-processing amazon-web-services parquet amazon-sagemaker

5
推荐指数
2
解决办法
6313
查看次数

Spring JPA 批量更新插入很慢(1,000 个实体花了 20 秒)

当我尝试更新插入测试数据(1,000 个实体)时,花了1m 5s。

\n

所以我看了很多文章,然后我把处理时间减少到20秒

\n

但它对我来说仍然很慢,我相信有比我使用的方法更多的好的解决方案。有没有人有好的做法来处理这个问题?

\n

我还想知道哪个部分使它变慢?

\n
    \n
  1. 持久化上下文
  2. \n
  3. 附加选择
  4. \n
\n

谢谢你!

\n
\n

@实体类

\n

该实体类是从用户手机中收集到用户步行步数的健康数据。

\n

PK为userIdrecorded_atrecorded_atPK来自请求数据)

\n
@Getter\n@NoArgsConstructor\n@IdClass(StepId.class)\n@Entity\npublic class StepRecord {\n    @Id\n    @ManyToOne(targetEntity = User.class, fetch = FetchType.LAZY)\n    @JoinColumn(name = "user_id", referencedColumnName = "id", insertable = false, updatable = false)\n    private User user;\n\n    @Id\n    private ZonedDateTime recordedAt;\n\n    @Column\n    private Long count;\n\n    @Builder\n    public StepRecord(User user, ZonedDateTime recordedAt, Long count) {\n        this.user = user;\n …
Run Code Online (Sandbox Code Playgroud)

spring jpa bulkinsert batch-processing

5
推荐指数
1
解决办法
5755
查看次数

通过 Windows 命令行将特定文件编码为 Base64

我需要在Windows操作系统上使用命令行在屏幕上生成特定文件的base64数据(不生成文件)。

我已经看到在Unix系统上足以使用

cat <file_name>| base64
Run Code Online (Sandbox Code Playgroud)

获取编码为 base64 的文件内容。

在 Windows 上我无法得到相同的结果。

我找到了这个解决方案:

certutil -encode -f <file_name> tmp.b64 && findstr /v /c:- tmp.b64 && del tmp.b64
Run Code Online (Sandbox Code Playgroud)

但这需要系统生成一个临时文件,所以最后去销毁它。仅使用该certutil命令,屏幕上的结果就会被包含不相关信息的 3 行所污染。

有人可以帮我在 Windows 上提供一个仅生成 base64 数据的命令吗?

更新:我通过这个新版本的命令改进了屏幕上的结果:

certutil -encode -f <file_name> tmp.b64 && cls && findstr /v /c:- tmp.b64 && del tmp.b64
Run Code Online (Sandbox Code Playgroud)

结果更像是我的要求,但我想避免tmp.b64每次都创建临时文件。

windows base64 command-line batch-processing tobase64string

5
推荐指数
2
解决办法
1万
查看次数

如何快速关闭VS Code中所有打开的终端?

如何快速关闭VS Code中所有打开的终端?

我有很多打开的终端,我可以一一检查它们并分别杀死它们。或者我可以选择其中的一些,然后杀死选定的批次。但这两种方法都不方便,因为它们需要大量时间。我至少有 10000 个开放终端,而在一批中我可以选择几百个。

有没有办法一次性杀死所有终端?

在此输入图像描述

terminal kill batch-processing visual-studio-code

5
推荐指数
1
解决办法
6585
查看次数

为什么我不能保存这个SalesForce Batchable类?

我目前正在使用Apex工作簿来刷新我对SalesForce的了解.

教程#15,第1课:提供以下代码:

global class CleanUpRecords implements Database.Batchable<Object>
{
    global final String query;

    global CleanUpRecords (String q) {query = q;}

    global Database.Querylocator start (Database.BatchableContext BC)
    {
           return Database.getQueryLocator(query);
    }    


    global void execute (Database.BatchableContext BC, List<sObject> scope)
    {
        delete scope;
        Database.emptyRecycleBin(scope);
    }    

    global void finish(Database.BatchableContext BC)
    {
        AsyncApexJob a = [
                SELECT Id, Status, NumberOfErrors, JobItemsProcessed, TotalJobItems, CreatedBy.Email
                FROM AsyncApexJob 
                WHERE Id = :BC.getJobId()
            ];

        // Send an email to the Apex job's submitter
        // notifying of job completion.
        Messaging.SingleEmailMessage …
Run Code Online (Sandbox Code Playgroud)

class salesforce save batch-processing apex-code

4
推荐指数
1
解决办法
3496
查看次数