If you are using static routes with BGP to your ISP's endpoint you can set up the route metric for your secondary path higher. Or you can influence the route through BGP...either is acceptable.
example
ip route 0.0.0.0 0.0.0.0 X.X.X.X
ip route 0.0.0.0 0.0.0.0 X.X.X.X 200 <----Secondary Path set with metric of 200 (means it will prefer the top route (primary) unless it is unreachable then it will default to secondary.)
or if you are using BGP you can use the weight command...
Router(config-router)#neighbor "ip address primary isp" remote-as XX
Router(config-router)#neighbor "ip address secondary isp" remote-as XX
Router(config-router)#neighbor "ip address or primary ISP" weight
This will always prefer the primary route and if it goes down the secondary will be used. This is a powerful command and will mean that the primary will ALWAYS be used for outgoing traffic. Weight is considered before all other values.
If this post is helpful, Please Rate!