标签: batch-processing

使用 Mailgun 批量发送和单独的消息 ID

我正在使用Mailgun向客户列表发送付款提醒。

我最初的解决方案是使用他们的 REST API 向一组收件人发送电子邮件(批量发送。),如下所示:

public static bool SendBatch(string From, Dictionary<string, Object> vars, string txtEmail, string htmlEmail)
{
    RestClient client = new RestClient();
    client.BaseUrl = "https://api.mailgun.net/v2";
    client.Authenticator =
            new HttpBasicAuthenticator("api",
                                       "my-mailgun-key");
    RestRequest request = new RestRequest();
    request.AddParameter("domain", "my-domain.tld.mailgun.org", ParameterType.UrlSegment);
    request.Resource = "{domain}/messages";
    request.AddParameter("from", From);
    foreach (KeyValuePair<string, Object> entry in vars)
    {
        request.AddParameter("to", entry.Key);
    }
    request.AddParameter("subject", "Payment option ready");
    request.AddParameter("text", txtEmail);
    request.AddParameter("html", htmlEmail);
    request.AddParameter("recipient-variables", vars.ToJSON());
    request.Method = Method.POST;
    client.Execute(request);
    return true;
}
Run Code Online (Sandbox Code Playgroud)

(有关 ToJSON() 自定义扩展,请参阅此博客文章) …

c# api batch-processing mailgun

3
推荐指数
1
解决办法
3333
查看次数

ImageMagick:如何将目录中的多个TIFF文件批量合并为单个TIFF文件?

我的目录 c:\temp 中有 600 个 TIFF 文件。

文件名如下:

001_1.tif,
001_2.tif,
001_3.tif

002_1.tif,
002_2.tif,
002_3.tif
....
....
200_1.tif,
200_2.tif,
200_3.tif
Run Code Online (Sandbox Code Playgroud)

合并后的文件应放置在同一目录中,文件名称应如下所示:

1_merged.tif
2_merged.tif
.....
.....
200_merged.tif
Run Code Online (Sandbox Code Playgroud)

我正在寻找任何单个命令行/批处理文件通过 ImageMagick convert/mogrify命令或任何其他命令/工具来执行此操作。

请注意,总时间不应超过 5 秒。

tiff imagemagick batch-processing mogrify imagemagick-convert

3
推荐指数
1
解决办法
8198
查看次数

计算批次的平均值和 STD [Python/Numpy]

希望高效地计算批次中每个通道的平均值和标准差。


细节:

  • 批量大小:128
  • 图片:32x32
  • 3 通道(RGB)

因此每个批次的大小为 [128, 32, 32, 3]。

有很多批次(简单方法在所有批次上大约需要 4 分钟)。

我想输出2个数组:(meanR,meanG,meanB)和(stdR,stdG,stB)


(此外,如果在计算之后有一种有效的方法对批次执行算术运算,那么这将很有帮助。例如,从每个图像中减去整个数据集的平均值)

python numpy channel batch-processing tensorflow

3
推荐指数
1
解决办法
4265
查看次数

如何删除文件夹中最旧的文件?

我正在编写一个批处理脚本来备份文件,并且希望包含在备份数量超过变量设置的特定数量时删除文件夹中最旧文件的逻辑。对于批处理来说相当新,我当前的代码一旦超过数量就会删除所有文件。

有什么想法如何做到这一点?

SET Count=0
FOR %%A IN ("%SNAPSHOTNAME%*.*") DO SET /A Count += 1
IF %Count% gtr %NumberOfBackups% FOR %%A IN ("%SNAPSHOTNAME%_PBCS_Test_*.*") DO del "%%A"
Run Code Online (Sandbox Code Playgroud)

batch-file batch-processing

3
推荐指数
1
解决办法
4658
查看次数

解决SLURM“sbatch:错误:批量作业提交失败:请求的节点配置不可用”错误

我们的本地集群有 4 个 GPU 节点,其中包含 2 个 36 核 CPU 和 200 GB 的 RAM。当我尝试使用以下配置提交作业时:

#SBATCH --nodes=1
#SBATCH --ntasks=40
#SBATCH --cpus-per-task=1
#SBATCH --mem-per-cpu=1500MB
#SBATCH --gres=gpu:4
#SBATCH --time=0-10:00:00
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

sbatch:错误:批处理作业提交失败:请求的节点配置不可用

此错误的原因可能是什么?节点具有我需要的那种硬件......

cluster-computing batch-processing slurm

3
推荐指数
1
解决办法
9676
查看次数

返回值的“三元逻辑”:foo、bar 或 error

我有两种不同的 JSON 结构可以从中检索特定的对象值,基本上是这样的

{
    "one": {
        "foo": {
            "bar": "baz"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

还有一个这样的

{
    "two": {
        "foo": {
            "bar": "qux"
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我想bar在两种情况下都返回值加上一个额外的返回变量error,以防 case 1  baz- 也没有 case 2  qux- 匹配任何东西(即匹配null)。

仅使用 jq 1.6 有没有一种简单的方法可以做到这一点?

更新: 以下是实际 JSON 文件的片段:

/* manifest.json, variant A */
{
    "browser_specific_settings": {
        "gecko": {
            "id": "{95ad7b39-5d3e-1029-7285-9455bcf665c0}",
            "strict_min_version": "68.0"
        }
    }
}

/* manifest.json, variant B */
{
    "applications": {
        "gecko": {
            "id": "j30D-3YFPUvj9u9izFoPSjlNYZfF22xS@foobar",
            "strict_min_version": "53.0" …
Run Code Online (Sandbox Code Playgroud)

json batch-processing jq

3
推荐指数
1
解决办法
1110
查看次数

@BeforeStep 未在 AsyncProcessor 中调用

我一直在使用同步 ItemProcessor 和 Writer,但现在我将其移至异步,如下代码所示:

@Bean
public Job importFraudCodeJob(Step computeFormFileToDB) {
    return jobBuilderFactory.get("Import-Entities-Risk-Codes")
            .incrementer(new RunIdIncrementer())
            .listener(notificationExecutionListener)
            .start(computeFormFileToDB)
            .build();
}
@Bean
public Step computeFormFileToDB(ItemReader<EntityRiskCodesDto> entityRiskCodeFileReader) {
    return stepBuilderFactory.get("ImportFraudCodesStep")
            .<EntityFraudCodesDto, Future<EntityFraudCodes>>chunk(chunkSize)
            .reader(entityRiskCodeFileReader)
            .processor(asyncProcessor())
            .writer(asyncWriter())
            .faultTolerant()
            .skipPolicy(customSkipPolicy)
            .listener(customStepListener)
            .listener(chunkCounterListener())
            .taskExecutor(taskExecutor())
            .throttleLimit(6)
            .build();
}
Run Code Online (Sandbox Code Playgroud)

在我的 ItemPocessor<I,O> 中,我使用 @BeforeStep 来获取我存储在 StepExecutionContext 中的值:

@BeforeStep
public  void getKey(StepExecution stepExecution) {
    log.info("Fetching batchNumber");
    ExecutionContext context = stepExecution.getExecutionContext();
    this.sequenceNumber = (Integer) context.get("sequenceNumber");
}
Run Code Online (Sandbox Code Playgroud)

这里是我的 AsyncProcessor 的声明:

  @Bean
public AsyncItemProcessor<EntityRiskCodesDto, EntityRiskCodes> asyncProcessor() {
    var asyncItemProcessor = new AsyncItemProcessor<EntityRiskCodesDto, EntityRiskCodes>();
    asyncItemProcessor.setDelegate(riskCodeItemProcessor());
    asyncItemProcessor.setTaskExecutor(taskExecutor()); …
Run Code Online (Sandbox Code Playgroud)

spring asynchronous batch-processing spring-batch spring-batch-tasklet

3
推荐指数
1
解决办法
1224
查看次数

将前导零添加到文件名

我正在尝试修改由其他人创建的批处理文件,根据文件第4行中找到的数字添加前导零.实际文件名是第3行找到的名称和第4行的数字的串联.所以如果前几行如下:

3.1.19
-1
TEST
560
Run Code Online (Sandbox Code Playgroud)

文件名为v_TEST00560.TXT.如您所见,文件名中的总位数应为5.如果第4行显示的数字为8(见下文),则:

3.1.19
-1
TEST
8
Run Code Online (Sandbox Code Playgroud)

文件名为v_TEST00008.txt.我的文件如下:

@Echo Off 

Setlocal EnableDelayedExpansion

REM File: rename5.bat
REM The script will look for and parse one (or more) input files 
REM Input files can containrecords for one or more vessels.
REM This script assumes that each record starts with the "3.1.19" string.

REM %%%%%%%%%%%%%%%%%%%%%%% Configuration Section %%%%%%%%%%%%%%%%%%%%%%%

SET INPUT_DIR=C:\Files\RenameFileName\Input
SET OUTPUT_DIR=C:\Files\RenameFileName\Output
SET ARCHIVE_DIR=C:\Files\RenameFileName\Archive
SET TEMP_DIR=C:\Files\RenameFileName\tmp
SET INPUT_FILENAME=INTERFACE.TXT
SET REC=3.1.19

REM %%%%%%%%%%%%%%%%%%%%%%%%%%%% Checking Section %%%%%%%%%%%%%%%%%%%%%%%%%%%%

FOR /F "usebackq tokens=* eol= …
Run Code Online (Sandbox Code Playgroud)

dos batch-file batch-processing

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

模式克服了Entity Framework中缺少ConflictMode.ContinueOnConflict的实现?

Linq To SQL DataContext有一个重载,SubmitChanges它允许在抛出Optimistic Concurrency Exception时继续更新,并为开发人员提供一种机制,以便在一个Try Catch块中解决之后的冲突.

甚至它的方法也WCFDataServicesContext有一个SaveChangedOptions.ContinueOnError参数,它 SaveChanges至少允许你在发生错误时继续更新并且保留未解决的冲突更新,以便你以后可以查看它们.

(1)为什么ObjectContext.SaveChanges方法没有这样的选择?

(2)是否存在任何会模仿Linq To SQL行为的更新模式?我在MSDN上找到的示例使得看起来好像一个Try Catch块会在多次更新的情况下看到你回家.但是这种模式不允许您单独调查每个冲突的更新:它只是提醒您第一次冲突,然后为您提供"在一次扫描中擦除表清理"的选项,以防止任何进一步的乐观并发异常浮出水面,知道是否存在以及您希望如何处理它们.

batch-processing optimistic-concurrency entity-framework-4

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

批处理文件:查找子字符串是否在字符串中(不在文件中)第2部分 - 使用变量

在Windows批处理文件中,我有一个字符串'abcdefg'.我想检查字符串中是否有'bcd',但我也希望每个都在变量中,或传入字符串的参数.

这个解决方案很接近,但使用的是常量而不是变量. 批处理文件:查找substring是否在字符串中(不在文件中)

string substring batch-file findstr batch-processing

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