Whatever the problem is, pushgateway generally isn't the solution.
If this is a one-shot batch job, then the value that pushgateway stores will be the *last* value that the job wrote - generally some sort of exit status. It doesn't care whether the job ran on node A or node B, but you'll just get whatever the last value was.
You haven't said what the metric value of 0 or 30 represents. If this value is a success/fail status code, then storing the last value is the right thing to do. Otherwise, it may not be.
If you want a separate metric for the jobs which ran on each node, then add the node name as a label.
If you're trying to combine metrics from different nodes - e.g. a count of the total number of things - then you may be better off with the stats_exporter, which gives you shared counters that each job can increment