Why a job in a loop has been called once?

I have a job in a loop and when I debug it, it has been called once. I don’t know why. Here is a code:

soldierParallelTransPosHandle.Complete();
...
for (int x = 0; x < columns; x++)
			{ 
				SoldierParallelTransJob(indexOfSoldier, generateSoldier.spaceBetweenThem, x , y);
				...
			}
...

void SoldierParallelTransJob(int indexOfSoldier, float spaceBetweenThem, int x, int y)
	{
		soldierParallelTransPos = new SoldierParallelTransPos()
		{
			indexOfSoldier = indexOfSoldier,
			spaceBetweenThem = spaceBetweenThem,
			x = x,
			y = y
		};

		soldierParallelTransPosHandle = soldierParallelTransPos.Schedule(transformAccessArray);

		JobHandle.ScheduleBatchedJobs();
	}
...
public struct SoldierParallelTransPos : IJobParallelForTransform
{
	[ReadOnly]
	public int indexOfSoldier, x, y;
	[ReadOnly]
	public float spaceBetweenThem;

	public void Execute(int index, TransformAccess transform)
	{
		//Do something
	}

The code is a little hard to read concidering i do not know the context involved, but i’d imagine that it’s most likely because columns = 2 and when it loops once x < columns